Classe result_of
Determina o tipo de retorno do tipo callable que usa os tipos de argumento especificados. Adicionado em C++14, preterido em C++17.
Sintaxe
template<class>
struct result_of; // Causes a static assert
template <class Fn, class... ArgTypes>
struct result_of<Fn(ArgTypes...)>;
// Helper type
template<class T>
using result_of_t = typename result_of<T>::type;
Parâmetros
Fn
O tipo callable para consulta.
ArgTypes
Os tipos de lista de argumentos para o tipo callable para consulta.
Comentários
Use este modelo para determinar no tempo de compilação o tipo de resultado de Fn
(ArgTypes
), em que Fn é um tipo que pode ser chamado, referência à função ou a referência ao tipo que pode ser chamado, invocado usando uma lista de argumentos de tipos em ArgTypes. O membro type
do modelo de classe nomeia o tipo de resultado de decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...))
se a expressão não avaliada std::invoke(declval<Fn>(), declval<ArgTypes>()...)
está bem formada. Caso contrário, o modelo de classe não terá nenhum membro type
. O tipo Fn e todos os tipos de pacote de parâmetros ArgTypes devem ser tipos completos, void
ou matrizes de associação desconhecida. Preterido em favor de invoke_result no C++17.
Requisitos
Cabeçalho:<type_traits>
Namespace: std