可能重复:
是否可以编写 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 是否添加了任何内容以使其更易于实现?