Template Template C ++ Function
¿Cómo escribo una función de plantilla que opera en un contenedor arbitrario de un tipo arbitrario? Por ejemplo, ¿cómo hagogeneraliza esta función ficticia
template <typename Element>
void print_size(const std::vector<Element> & a)
{
cout << a.size() << endl;
}
template <template<typename> class Container, typename Element>
void print_size(const Container<Element> & a)
{
cout << a.size() << endl;
}
Aquí hay un uso típico
std::vector<std::string> f;
print_size(f)
Esto da error
tests/t_distances.cpp:110:12: error: no matching function for call to ‘print(std::vector<std::basic_string<char> >&)’. I'm guessing I must tell the compiler something more specific about what types that are allowed.
Que es estovariante de uso de plantilla llamado y ¿cómo lo soluciono?