result_of (Clase)
Determina el tipo de valor devuelto del tipo que se puede llamar que toma los tipos de argumento especificados. Incluido en C++14, en desuso en C++17.
Sintaxis
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
El tipo que se puede llamar para la consulta.
ArgTypes
Los tipos de la lista de argumentos para el tipo que se puede llamar para la consulta.
Comentarios
Use esta plantilla para determinar en tiempo de compilación el tipo de resultado de Fn
(ArgTypes
), donde Fn es un tipo que se puede llamar, la referencia a la función o la referencia al tipo que se puede llamar, invocado mediante una lista de argumentos de los tipos de ArgTypes. El miembro type
de la clase de plantilla menciona el tipo de resultado de decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...))
si la expresión no evaluada std::invoke(declval<Fn>(), declval<ArgTypes>()...)
tiene el formato correcto. De lo contrario, la clase de plantilla no tiene ningún miembro type
. El tipo Fn y todos los tipos en el paquete de parámetros ArgTypes deben ser tipos completos, void
o matrices de límite desconocido. En desuso en favor de invoke_result en C++17.
Requisitos
Encabezado:<type_traits>
Espacio de nombres: std