[英]C++ Template Variadic Class Constructor working with Parameter Pack but functions not
所以我面临的问题是我的数据结构类constructor
可以使我声明具有可变长度parameters
的类:
template<class T>
class Dynarray
{
private:
int size;
public:
template<class T, typename... Arguments>
Dynarray(T item,Arguments...)
{
size = sizeof...(Arguments);
}
}
但是,如果我添加了额外的public成员函数,则可以像这样向类中添加更多:
template<class T>
class Dynarray
{
private:
int size;
public:
template<class T, typename... Arguments>
Dynarray(T item,Arguments...)
{
size = sizeof...(Arguments);
}
/////////////////////////////////////////////////////////
template<class T, typename... Arguments>
void Dynarray<T>::AddGroup(T item, Arguments...)
{ //Errors C2838, C2059, C2334
size += sizeof...(Arguments);
}
/////////////////////////////////////////////////////////
}
我收到错误代码:
C2838'AddGroup':成员声明中的非法合格名称
C2059语法错误:“ {”
C2334'{'之前的意外令牌; 跳过表观功能体
这样的Constructors
和Member Functions
之间的类模板是否有所不同? 您知道任何解决方法吗?
在类定义内,您不应重复Dynarray<T>
:因此应为:
template<typename... Arguments>
void AddGroup(T item, Arguments...)
{
size += sizeof...(Arguments);
}
(我还删除了该类已经存在的重复typename T
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.