Classe invoke_result
Determina o tipo de retorno do tipo que pode ser chamado que usa os tipos de argumento especificados no tempo de compilação. Adicionado em C++17.
Sintaxe
template <class Callable, class... Args>
struct invoke_result<Callable(Args...)>;
// Helper type
template<class Callable, class... Args>
using invoke_result_t = typename invoke_result<Callable, Args...>::type;
Parâmetros
Callable
O tipo callable para consulta.
Args
Os tipos de lista de argumentos para o tipo callable para consulta.
Comentários
Use este modelo para determinar o tipo de resultado de Callable(Args...) em tempo de compilação, em que Callable e todos os tipos no Args são qualquer tipo completo, uma matriz de limite desconhecido ou um void
possivelmente qualificado por cv. O membro type
do modelo de classe nomeia o tipo de retorno de Callable quando invocado usando os argumentos Args.... O membro type
só será definido se Callable puder ser chamado quando invocado usando os argumentos Args... em um contexto não avaliado. Caso contrário, o modelo de classe não tem nenhum membro type
, o que permite testes SFINAE em um determinado conjunto de tipos de argumento em tempo de compilação.
Requisitos
Cabeçalho:<type_traits>
Namespace: std