Это продолжение моего предыдущего вопроса: C++ - Создание класса-оболочки с тем же синтаксисом, что и у обернутых данных
По сути, я пытаюсь создать шаблон оболочки для некоторых данных и построить/установить оболочку с тем же синтаксисом, что и данные.
Если я использую что-то вроде структуры, я могу добиться этого, перенаправив параметры, чтобы синтаксис мог быть:
struct SomeStruct{
int a, b, c;
SomeStruct(int _a, int _b, int _c) {/*...*/}
};
// ...
WrapperClass<SomeStruct> wrapped_struct1{1,2,3};
WrapperClass<SomeStruct> wrapped_struct2 = {1,2,3};
WrapperClass<SomeStruct> wrapped_struct3( 1,2,3);
Проблема в том, что это работает, только если у меня есть этот конструктор, определенный в структуре. Могу ли я заставить его работать, не определяя его?
Обертка в настоящее время выглядит так:
template<typename T> class WrapperClass{
public:
T data;
template <typename...Args>
WrapperClass(Args&&...args) : data(std::forward<Args>(args)...) {}
};