これは私の前の質問へのフォローアップです: 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)...) {}
};