I\'m trying to check whether a functor is compatible with a given set of parametertypes and a given return type (that is, the given parametertypes can be implicitely converted t
When I want to test if a given expression is valid for a type, I use a structure similar to this one:
template
struct is_callable_without_parameters {
private:
template
static decltype(std::declval()(), void(), 0) test(int);
template
static void test(...);
public:
enum { value = !std::is_void(0))>::value };
};