Descubra se é possível chamar um objeto C ++

É possível escrever uma característica de tipo, digamosis_callable<T>, que informa se um objeto tem umoperator() definiram? É fácil se os argumentos para o operador de chamada forem conhecidos antecipadamente, mas não no caso geral. Quero que a característica retorne true se e somente se houver pelo menos um operador de chamada sobrecarregado definid

Essa questã está relacionado e tem uma boa resposta, mas não funciona em todos os tipos (apenas emint tipos conversíveis). Além disso,std::is_function funciona, mas apenas em funções C ++ apropriadas, não em functores. Estou procurando uma solução mais geral.

questionAnswers(0)

yourAnswerToTheQuestion