テンプレートクラスのメソッドの戻り型を確認するにはどうすればよいですか?

アレックス

テンプレートパラメータとして指定されたクラスのメソッドgetGG()のClass2戻り値型をチェックインしようとしましたが、コードがコンパイルされません。それを正しく行う方法は?

template <class T, class U>
struct hasProperMethodReturnValueType {
    static constexpr bool value = std::is_same<T, std::decltype(U.getGG())>;
};

template<class P> class Class1 {
private:
    P gg;
public: 
    Class1(P a) : gg(a) {} 
    P getGG() {
        return gg;
    }   
};

template<class A, class P> class Class3 {
private:
    P gg;
    A dd;
public: 
    Class3(P a, A r) : gg(a), dd(r) {} 
    P getGG() {
        return gg;
    }   
};

template<class G, class R> class Class2 {
    static_assert(hasProperMethodReturnValueType<G, R>::value, "Not same type");
private:
    R cc;
public:
    Class2(R r) : cc(r) {};
};

int main() {
    auto obj  = Class2<int, Class1<int> >(Class1<int>(3));
    auto obj2  = Class2<int, Class3<float, int> >(Class3<float, int>(0, 1.1));
    return 0;
}

コンパイルエラー:

error: template argument 2 is invalid
  static constexpr bool value = std::is_same<T, std::decltype(U.getGG())>;
yumetodo

を使用しますstd::declval

template <class T, class U>
struct hasProperMethodReturnValueType
  : std::is_same<T, decltype(std::declval<U>().getGG())>
{};

https://wandbox.org/permlink/iWUCOyssN3sVo2yH

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テンプレートパラメータメソッドの戻り値の型を取得するにはどうすればよいですか?

分類Dev

それ自体がテンプレートであり、戻り型のみがテンプレート型に依存する型でテンプレートメソッドを特殊化するにはどうすればよいですか?

分類Dev

Observableの戻り値に基づいてプレゼンターメソッドを単体テストするにはどうすればよいですか?

分類Dev

クラスメソッドの戻り値の型に従ってパラメータ型を宣言するにはどうすればよいですか?

分類Dev

オペレーションの戻り値の型のモックメソッドから例外をスローするユニットテストを作成するにはどうすればよいですか?

分類Dev

Pythonでtype()メソッドの戻り値を確認するにはどうすればよいですか?

分類Dev

Goプログラムのテストコードのスタックトレースを確認するにはどうすればよいですか?

分類Dev

テンプレートでdjangoクラスメソッドのデータを表示するにはどうすればよいですか?

分類Dev

クラスメソッドの署名を確認するにはどうすればよいですか?

分類Dev

コンストラクターオプションに基づいてメソッドの戻り値の型を設定するにはどうすればよいですか?

分類Dev

Iterable <interface>の戻り値の型メソッドをIterable <にオーバーライドするにはどうすればよいですか?インターフェイスを拡張>戻り値の型メソッド

分類Dev

メソッドがコーディングされているクラスのような別の戻り型で静的メソッドを使用するにはどうすればよいですか

分類Dev

テンプレート化されたクラスメソッドから依存型を返すにはどうすればよいですか?

分類Dev

Scalaリフレクションを使用してメソッドの戻り値の型文字列を取得するにはどうすればよいですか?

分類Dev

非トレーリングdecltype戻り値の型を使用してアウトオブラインクラステンプレートメンバー関数を定義するにはどうすればよいですか?

分類Dev

非トレーリングdecltype戻り値の型を使用してアウトオブラインクラステンプレートメンバー関数を定義するにはどうすればよいですか?

分類Dev

TypeScriptでクラスメソッドの戻り値の型を取得するにはどうすればよいですか

分類Dev

ashシェルでパイプされたコマンドの戻りステータスを確認するにはどうすればよいですか?

分類Dev

Clangでテンプレート型クラスメンバーの実際の型を取得するにはどうすればよいですか?

分類Dev

メソッドに複数の戻り値を持つ複数のifステートメントが含まれている場合に、メソッドから戻り値を取得するにはどうすればよいですか?

分類Dev

エンティティフレームワークでストアドプロシージャの戻り値を確認するにはどうすればよいですか?

分類Dev

メソッドの戻り値の型を汎用にするにはどうすればよいですか?

分類Dev

テンプレートクラスからのメソッドの戻り値の型をtypedefする方法は?

分類Dev

非型テンプレートクラスを特殊化するために、宣言の外部でメソッドを定義するにはどうすればよいですか?

分類Dev

Riderのテンプレートに引数として渡されたクラスを確認するにはどうすればよいですか?

分類Dev

テンプレート化されていないクラスのテンプレート化されたメンバーメソッドを部分的に特殊化するにはどうすればよいですか?

分類Dev

StarUMLの値のリストを返すメソッドの戻り値の型を指定するにはどうすればよいですか?

分類Dev

メソッドが他のテンプレートクラスインスタンスのプライベートメンバーにアクセスできるようにするにはどうすればよいですか?

分類Dev

単体テストの場合、非同期メソッドからの戻りnullをモックするにはどうすればよいですか?

Related 関連記事

  1. 1

    テンプレートパラメータメソッドの戻り値の型を取得するにはどうすればよいですか?

  2. 2

    それ自体がテンプレートであり、戻り型のみがテンプレート型に依存する型でテンプレートメソッドを特殊化するにはどうすればよいですか?

  3. 3

    Observableの戻り値に基づいてプレゼンターメソッドを単体テストするにはどうすればよいですか?

  4. 4

    クラスメソッドの戻り値の型に従ってパラメータ型を宣言するにはどうすればよいですか?

  5. 5

    オペレーションの戻り値の型のモックメソッドから例外をスローするユニットテストを作成するにはどうすればよいですか?

  6. 6

    Pythonでtype()メソッドの戻り値を確認するにはどうすればよいですか?

  7. 7

    Goプログラムのテストコードのスタックトレースを確認するにはどうすればよいですか?

  8. 8

    テンプレートでdjangoクラスメソッドのデータを表示するにはどうすればよいですか?

  9. 9

    クラスメソッドの署名を確認するにはどうすればよいですか?

  10. 10

    コンストラクターオプションに基づいてメソッドの戻り値の型を設定するにはどうすればよいですか?

  11. 11

    Iterable <interface>の戻り値の型メソッドをIterable <にオーバーライドするにはどうすればよいですか?インターフェイスを拡張>戻り値の型メソッド

  12. 12

    メソッドがコーディングされているクラスのような別の戻り型で静的メソッドを使用するにはどうすればよいですか

  13. 13

    テンプレート化されたクラスメソッドから依存型を返すにはどうすればよいですか?

  14. 14

    Scalaリフレクションを使用してメソッドの戻り値の型文字列を取得するにはどうすればよいですか?

  15. 15

    非トレーリングdecltype戻り値の型を使用してアウトオブラインクラステンプレートメンバー関数を定義するにはどうすればよいですか?

  16. 16

    非トレーリングdecltype戻り値の型を使用してアウトオブラインクラステンプレートメンバー関数を定義するにはどうすればよいですか?

  17. 17

    TypeScriptでクラスメソッドの戻り値の型を取得するにはどうすればよいですか

  18. 18

    ashシェルでパイプされたコマンドの戻りステータスを確認するにはどうすればよいですか?

  19. 19

    Clangでテンプレート型クラスメンバーの実際の型を取得するにはどうすればよいですか?

  20. 20

    メソッドに複数の戻り値を持つ複数のifステートメントが含まれている場合に、メソッドから戻り値を取得するにはどうすればよいですか?

  21. 21

    エンティティフレームワークでストアドプロシージャの戻り値を確認するにはどうすればよいですか?

  22. 22

    メソッドの戻り値の型を汎用にするにはどうすればよいですか?

  23. 23

    テンプレートクラスからのメソッドの戻り値の型をtypedefする方法は?

  24. 24

    非型テンプレートクラスを特殊化するために、宣言の外部でメソッドを定義するにはどうすればよいですか?

  25. 25

    Riderのテンプレートに引数として渡されたクラスを確認するにはどうすればよいですか?

  26. 26

    テンプレート化されていないクラスのテンプレート化されたメンバーメソッドを部分的に特殊化するにはどうすればよいですか?

  27. 27

    StarUMLの値のリストを返すメソッドの戻り値の型を指定するにはどうすればよいですか?

  28. 28

    メソッドが他のテンプレートクラスインスタンスのプライベートメンバーにアクセスできるようにするにはどうすればよいですか?

  29. 29

    単体テストの場合、非同期メソッドからの戻りnullをモックするにはどうすればよいですか?

ホットタグ

アーカイブ