C++ C++;:使用可变模板的类包装器

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);//不起作用,这

我想为其他类对象做一个包装。当包装器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 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。我会选择正确的答案时,倒计时让我去