Guías de deducción para std::packaged_task
De cppreference.com
< cpp | thread | packaged task
Definido en el archivo de encabezado <future> | ||
template<class R, class... Args> packaged_task(R(*)(Args...))-> packaged_task<R(Args...)>; | (1) | (desde C++17) |
template<class F> packaged_task(F)-> packaged_task</*véase más abajo*/>; | (2) | (desde C++17) |
1) Esta guía de deducción se proporciona para std::packaged_task para permitir la deducción desde funciones.
2) Esta sobrecarga solo participa en la resolución de sobrecargas si &F::operator() está bien formado cuando se trata como un operando sin evaluar y decltype(&F::operator()) es de la forma R(G::*)(A...) (opcionalmente calificado-cv, opcionalmente
noexcept
, opcionalmente calificado como una referencia a l-valor) para algún tipo clase G. El tipo deducido es std::packaged_task<R(A...)>.[editar]Ejemplo
Ejecuta este código
#include <future>int func(double){return0;}int main(){std::packaged_task f{func};// deduce packaged_task<int(double)>int i =5;std::packaged_task g =[&](double){return i;};// deduce packaged_task<int(double)>}