我有一个模板类,我有一些专长.
但下一个专业化是一个模板本身.你如何指定:
但下一个专业化是一个模板本身.你如何指定:
template<typename T> class Action { public: void doStuff() { std::cout << "Generic\n"; } } // A specialization for a person template<> class Action<Person> { public: void doStuff() { std::cout << "A Person\n";} } // I can easily specialize for vectors of a particular type. // But how do I change the following so that it works with all types of vector. // Not just `int` template<> class Action<std::vector<int> > { public: void doStuff() { std::cout << "A Generic Vector\n";} }
解决方法
琐碎的部分专业化?
template <typename T> class Action<std::vector<T>> { public: void doStuff() { std::cout << "A Generic Vector\n"; } };