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