与带有参数包的函数声明不同,我发现类需要尖括号中每个参数的类型......
Component<IntegerPair, int, int> temp(40, 5);
...这似乎是多余的。这是我的定义Component
:
template<typename T, class... T_Args>
class Component
{
public:
Component(T_Args... args)
: m_data(args...)
{}
T m_data;
};
- 有没有办法
int, int
从上述声明中删除? - 如果是这样,是否可以删除它?
- 另外,我的实例化方式
m_data
安全吗?使用std::forward<T_Args>(args)...
编译器时告诉我,我没有可以转换所有参数类型的构造函数。