首页 > 解决方案 > 对部分特化无效使用不完整类型

问题描述

为什么我在以下内容中收到此错误:

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()
{
}

错误:无效使用不完整类型 'class >MyContainer' void MyContainer::append(T&& elem)

我最初的想法是,如果有人将第二个模板参数作为 传递double,它不会起作用,所以我需要先提供一个非专业化的成员函数定义,并且可能在此之上我可以提供部分专业化。

但即使在添加以下内容后,我仍然会遇到相同的错误:

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

标签: c++templates

解决方案


推荐阅读