Seems like the following specialization of impl<> works:
template <typename r>
struct impl
Maybe this one does what you need: http://groups.google.com/group/comp.lang.c++.moderated/tree/browse_frm/threa...
Thanks Roman. It is kind of amazing! Both has_member<> and is_call_possible<> are very interesting (even if a bit ugly). But is_call_possible doesn't seem to work for member functions that don't have any arguments. I tried twiddling with the implementation a bit and no luck yet. Sorry, I don't know how to make it work for functions without arguments. Problem is that this program is invalid: void foo() {} void foo(...) {} int main() { foo(); // Ambiguous. } Roman Perepelitsa.