Possible Duplicate:
Is it possible to write a C++ template to check for a function's existence?
I'm interested in finding some SFINAE-driven expressions that allow me to detect the presence of a member function and handle it accordingly, a 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);
}
A set of questions:
- Can this be done in c++?
- Does c++11 add anything to make this easier to implement?