type-deduction
¿Cuál es la razón detrás del comportamiento decltype?
Como entendí en C++11 decltype(expression) se usa para deducir exactamente el mismo tipo de la expresión dada. Pero cuando la ... o decltype((x + x)) el tipo deducido es T, pero no T&. Esto es aún más confuso. No se si este comportamiento es estándar.
¿Por qué auto x{3} deduce una lista de inicializadores?
Me encanta auto en C++11. Es maravilloso. Pero tiene una inconsistencia que realmente me pone de los nervios, porque tropiezo ... ; // No need to specify the type
Funcionaría muy bien. Entonces, ¿cuál es la razón detrás del caso especial para auto x{i}?
Eliminar referencia en decltype (devuelve T en lugar de T & donde T & es el decltype)
(Si eres un pro de C++11, salta al párrafo en negrita.)
Digamos que quiero escribir un método de plantilla que llama y devue ... l tipo de retorno de doSomething como decltype(helper(foo.bar())). Pero tiene que haber una mejor manera, lo estoy sintiendo.
Deducción de la función
Digamos que tenemos una plantilla de clase como esta:
template<typename F>
class A
{
public:
template<typename.. ... a clase podrían tomar una función y parámetros para esta función en tiempo de construcción y llamar a esto función más tarde.