c++のテンプレートで特定の型を要素に持ったコンテナ型だけ受けたい
c++のテンプレートで
template<class T>
void print(T &&iterable)
{
for(auto && str : iterable)
std::cout << str << std::endl;
}
のような関数テンプレートを作ってテンプレートクラスTにはstd::stringを要素に持ったstd::vectorやstd::dequeなどのようなcontainerクラスだけを受け取るようにしたいのですがどのように書けばよいでしょうか?
template<class T>
void print(T<std::string> &&iterable)
{
for(auto && str : iterable)
std::cout << str << std::endl;
}
std::vector<std::string>a({"1","2","3"});
print<std::vector>(a);
のように書いたらコンパイルエラーで通りませんでした。