我正在制作一个模板类,它是某种类型数据的包装器。我希望能够以与未包装时设置该数据相同的方式设置/构造此类。
基本思想如下:
template<typename T> class WrapperClass{
public:
T data;
WrapperClass(const T& _data) : data( _data) {}
// others stuff
};
现在有了像整数这样的东西,我可以这样做:
WrapperClass<int> wrapped_data = 1;
但对于结构或类我不知道如何:
struct SomeStruct{
int a, b, c;
SomeStruct(int _a, int _b, int _c) {/*...*/}
};
//Would like to set the wrapped struct the same way as normal struct:
SomeStruct some_struct1 = { 1,2,3};
SomeStruct some_struct2( 1,2,3);
WrapperClass<SomeStruct> wrapped_struct1( {1,2,3}); //OK
WrapperClass<SomeStruct> wrapped_struct2 = {1,2,3}; //ERROR
WrapperClass<SomeStruct> wrapped_struct3( 1,2,3); //ERROR
有没有办法以某种方式转发参数,以便我可以在没有错误的情况下执行后一种语法?