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 - Fatal编程技术网

C++ 对部分专门化使用的不完整类型无效

C++ 对部分专门化使用的不完整类型无效,c++,templates,C++,Templates,为什么我会在以下情况中出现此错误: template<typename T,typename Y> class MyContainer { std::vector<T> list; public: void append( T&& elem) ; }; template<typename T> void MyContainer<T,int>::append(T&& elem) {

为什么我会在以下情况中出现此错误:

template<typename T,typename Y>
class MyContainer
{
        std::vector<T> list;
public:

        void append( T&& elem) ;
};

template<typename T>
void MyContainer<T,int>::append(T&& elem)
{
        list.push_back(elem);
}
int main()
{
}

不能只对一个成员函数进行部分专门化。你必须部分地专门化整个班级;该专门化将定义自己的成员函数,这些函数可能与主模板中的函数匹配,也可能与主模板中的函数不匹配。这是否回答了您的问题?或者不,这个问题的答案我不清楚,我不能就他的问题提问,因此在这里单独提问。@anurag86到底什么是不清楚的?正如IgorTandetnik的回答和评论所说,如果不对整个类进行部分专门化,就无法为类模板的成员函数定义部分专门化。还有更多答案相似的重复项,例如,每个问题的链接问题中都有更多的重复项。我不清楚他提供的
模板结构嵌套
。是的,我也在浏览其他帖子,运气不好。再看一遍
template<typename T, typename Y>
void MyContainer<T,Y>::append(T&& elem)
{
        list.push_back(elem);
}