我可以使用SFINAE来检测和调用可能未定义的成员函数吗?

时间:2012-06-27 06:58:17

标签: c++ templates c++11 sfinae member-functions

  

可能重复:
  Is it possible to write a C++ template to check for a function's existence?

我有兴趣找到一些SFINAE驱动的表达式,它允许我检测成员函数的存在并相应地处理它,la:

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是否添加了任何内容以使其更容易实现?

0 个答案:

没有答案