3

重複の可能性:
C++ テンプレートを記述して関数の存在を確認することは可能ですか?

メンバー関数の存在を検出し、それに応じて処理できる SFINAE 主導の式を見つけることに興味があります。

template <typename T>
int maybe_member(T& x, {{sfinae_1}})
{
    return x.maybe_member();
}

template <typename T>
int maybe_member(T& x, {{sfinae_2}})
{
    std::cerr << "This T does not implement maybe_member.\n";

    return 1;
}

int main()
{
    my_type_t instance;

    return maybe_member(instance);
}

一連の質問:

  • これは c++ で実行できますか?
  • c++11 は、これを実装しやすくするために何かを追加しますか?
4

0 に答える 0