Acabo de ver this really nice talkRock Hard: C++ Evolucionando por Boris Jabes. En la sección de la conversación acerca de orden superior-programación genérica dice que el siguiente es un ejemplo de una función que es más genérico en cuanto a su tipo de retorno y reduce el número de función de plantilla sobrecargasUso esclarecedor de C++ 11 decltype
template <typename Func>
auto deduce(const Func & f) -> decltype(f())
{..}
Este sin embargo se puede realizar usando sintaxis de la plantilla normal de la siguiente manera
template <typename Func>
Func deduce(const Func & f)
{..}
así que supongo que el ejemplo elegido no realmente muestran el poder único de decltype
. ¿Alguien puede dar un ejemplo de más que ilumine el uso de de decltype
?
No. El primer ejemplo significa que '' 'deducir (f)' '' devuelve el tipo de '' 'resultado de Func'''. El segundo ejemplo significa que '' 'deduce (f)' '' devuelve '' 'Func'''. ¿Ves la diferencia? –
Aah, lo siento, extrañé el '()' extra en el argumento para 'decltype'. Mi error. –