return-type-deduction

¿Cuáles son algunos usos de decltype (auto)?

En c++14 se introduce el modismo decltype(auto). Normalmente se usa para permitir que las declaraciones auto utilicen las ... )[std::forward<IndexType>(index)]; } ¿Hay otros ejemplos en los que esta nueva característica del lenguaje sea útil?

¿La deducción de tipo de retorno automático fuerza a varias funciones a tener el mismo tipo de retorno?

Considere el siguiente fragmento: struct A { auto foo(), bar(); }; auto A::foo() { return 1; } auto A::bar() { return 'a ... ipo de retorno automático fuerza a múltiples funciones, declaradas en una sola instrucción, a tener el mismo tipo de retorno?

¿Por qué la deducción de tipo de devolución automática funciona con tipos no completamente definidos?

Considere lo siguiente: template<typename Der> struct Base { // NOTE: if I replace the decltype(...) below with a ... alguna manera "retrasa" la instanciación? ¿O usar un contexto diferente que una expresión de tipo de retorno escrita a mano?

¿Por qué no se puede deducir el tipo de retorno de main?

Como era de esperar, lo siguiente falla en C++11 porque ese lenguaje no tiene deducción de tipo de retorno para las funciones ... main? ¿O ambos compiladores no cumplen? (Por si sirve de algo, nunca en realidad hacer esto. int main() para la victoria...)

Es void{} legal o no?

Esta es una continuación de esta pregunta. En los comentarios y en la respuesta se dice más de una vez que void{} no es ni u ... razonamiento? ¿Cuál es exactamente el void{} mencionado en la viñeta anterior y por qué es una expresión legal en este caso?

decltype resultado deducido de la función definida en clase

¿Por qué struct MyStruct { auto foo () { return 1; } auto bar () { return foo(); } }; Compilar, pero cuando se util ... orno deducido no se puede usar antes de que se defina ¿Es este comportamiento correcto por parte de las implementaciones?