Guías de deducción para std::packaged_task
De cppreference.com
<tbody>
</tbody>
| 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...)>.Ejemplo
Ejecuta este código
#include <future>
int func(double) { return 0; }
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)>
}