1

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

1 に答える 1