Compartilhar via


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

Confira também

<type_traits>
invoke_result aula