メンバー関数の存在を検出し、それに応じて処理できる 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 は、これを実装しやすくするために何かを追加しますか?