Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 它本身就是一个模板的专门化_C++_Templates_Template Specialization_Template Meta Programming - Fatal编程技术网

C++ 它本身就是一个模板的专门化

C++ 它本身就是一个模板的专门化,c++,templates,template-specialization,template-meta-programming,C++,Templates,Template Specialization,Template Meta Programming,我有一个模板类,对此我有一些专门知识。 但下一个专门化是模板本身。您如何指定此项: template<typename T> class Action { public: void doStuff() { std::cout << "Generic\n"; } } // A specialization for a person template<> class Action<Person> { public: void doS

我有一个模板类,对此我有一些专门知识。
但下一个专门化是模板本身。您如何指定此项:

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";}
}
模板
集体诉讼
{

public:void doStuff(){std::cout琐碎的部分专门化

template <typename T>
class Action<std::vector<T>> {
public:
  void doStuff() { std::cout << "A Generic Vector\n"; }
};
模板
集体诉讼{
公众:

void doStuff(){std::cout+1。有时(经常?)显而易见的答案是正确的答案:)@ereOn:真正的问题是-->为什么我会得到这么多选票支持这样一个微不足道的答案:x?我想人们只是喜欢简单:)我只是想知道你不知道这一点!@Nawaz:我的想法也是如此,也许是深夜?现在我看到答案很明显,但我一直在t中添加另一个模板行继承人。可能的副本