Можно ли написать черту типа, скажем, is_callable<T> которая сообщает, определен ли объект operator()? Легко, если аргументы оператора вызова известны заранее, но не в общем случае. Я хочу, чтобы признак возвращал true, если и только если определен хотя бы один перегруженный оператор вызова.
Этот вопрос связан и имеет хороший ответ, но он работает не для всех типов (только для типов int -convertible). Кроме того, std::is_function работает, но только для надлежащих функций C++, а не для функторов. Я ищу более общее решение.