C++ C++;:使用可变模板的类包装器
我想为其他类对象做一个包装。当包装器obj初始化时,我希望能够将我希望传递给内部obj的参数传递给它的构造函数:C++ C++;:使用可变模板的类包装器,c++,oop,templates,wrapper,variadic,C++,Oop,Templates,Wrapper,Variadic,我想为其他类对象做一个包装。当包装器obj初始化时,我希望能够将我希望传递给内部obj的参数传递给它的构造函数: 模板结构{ T(Args…Args){ 数据=新U(参数…); } U*数据; }; 我做了一个虚拟对象Obj: 结构对象{ Obj(内部a、内部b){ 这->a=a; 这->b=b; } INTA; int b; }; 现在,我想使用包装器,而不是使用Obj Obj(1,2)来初始化它,因为我会进行一些计算和管理。因此,我努力实现的目标是: tobj(1,2);//不起作用,这
模板结构{
T(Args…Args){
数据=新U(参数…);
}
U*数据;
};
我做了一个虚拟对象Obj:
结构对象{
Obj(内部a、内部b){
这->a=a;
这->b=b;
}
INTA;
int b;
};
现在,我想使用包装器,而不是使用Obj Obj(1,2)
来初始化它,因为我会进行一些计算和管理。因此,我努力实现的目标是:
tobj(1,2);//不起作用,这是我想要实现的
T obj(1,2);//行得通,但不是我想要的样子
类。。。Args
应该是构造函数的模板参数,而不是整个类的模板参数。此外,您应该在此处使用完美转发,即使这对struct Obj
并不重要
template <class U>
struct T
{
template <class ...Args>
T(Args &&... args)
{
data = new U(std::forward<Args>(args)...);
}
U *data;
};
模板
结构T
{
模板
T(Args&…Args)
{
数据=新U(标准:正向(参数)…);
}
U*数据;
};
Thx。我会选择正确的答案时,倒计时让我去