Articles of auto

C ++ 11 auto: ¿y si obtiene una referencia constante?

Por favor, eche un vistazo al siguiente código simple: class Foo { public: Foo(){} ~Foo(){} Foo(const Foo&){} Foo& operator=(const Foo&) { return *this; } }; static Foo g_temp; const Foo& GetFoo() { return g_temp; } Intenté usar auto así: auto my_foo = GetFoo(); Esperaba que my_foo fuera una referencia constante a Foo , que es […]

Ventajas de auto en parámetros de plantilla en C ++ 17

¿Cuáles son las ventajas de auto en los parámetros de plantilla que (posiblemente) se introducirán con C ++ 17? ¿Es solo una extensión natural del auto cuando quiero crear una instancia del código de la plantilla? auto v1 = constant; // v1 == 5, decltype(v1) is int auto v2 = constant; // v2 == true, […]

¿Qué significa auto && decirnos?

Si lees código como auto&& var = foo(); donde foo es cualquier función que retorna por valor de tipo T Entonces var es un valor l de referencia de tipo rvalue a T Pero, ¿qué implica esto para var ? ¿Significa que estamos autorizados a robar los recursos de var ? ¿Hay situaciones razonables en […]

¿Por qué auto x {3} deduce una initializer_list?

Me encanta el auto en C ++ 11. Es maravilloso. Pero tiene una inconsistencia que realmente me pone nerviosa, porque me tropiezo con ella todo el tiempo: int i = 3; // i is an int with value 3 int i = int{3}; // i is an int with value 3 int i(3); // i […]

¿Cómo funciona lambda genérico en C ++ 14?

¿Cómo funciona lambda genérico (palabra clave auto como tipo de argumento) en C ++ 14 estándar? ¿Está basado en plantillas de C ++ donde para cada argumento de tipo diferente el comstackdor genera una nueva función con el mismo cuerpo pero tipos reemplazados (polymorphism en tiempo de comstackción) o es más similar a los generics […]

¿Es automático como parámetro en una función regular una extensión GCC 4.9?

gcc 4.9 permite el siguiente código, pero gcc 4.8 y clang 3.5.0 lo rechazan. void foo(auto c) { std::cout << c.c_str(); } Recibo una warning: ISO C++ forbids use of ‘auto’ in parameter declaration [-Wpedantic] en 4.9 pero en 4.8 y clang obtengo el error: parameter declared ‘auto’ .

¿Debería el estilo de syntax del tipo de retorno final convertirse en el predeterminado para los nuevos progtwigs de C ++ 11?

C ++ 11 admite una nueva syntax de función: auto func_name(int x, int y) -> int; Actualmente esta función se declararía como: int func_name(int x, int y); El nuevo estilo no parece ser ampliamente adoptado aún (por ejemplo, en el gcc stl) Sin embargo, ¿debería preferirse este nuevo estilo en todos los nuevos progtwigs de […]

¿Cómo usar el diseño automático para mover otras vistas cuando una vista está oculta?

Diseñé mi Celda personalizada en IB, la subclasé y conecté mis salidas a mi clase personalizada. Tengo tres subvistas en el contenido de la celda que son: UIView (cdView) y dos tags (titleLabel y emailLabel). Dependiendo de los datos disponibles para cada fila, a veces quiero que se muestren UIView y dos tags en mi […]

¿Cuál es el tipo de lambda cuando se deduce con “auto” en C ++ 11?

Tenía la percepción de que el tipo de lambda es un puntero a la función. Cuando realicé la siguiente prueba, descubrí que estaba equivocada ( demo ). #define LAMBDA [] (int i) -> long { return 0; } int main () { long (*pFptr)(int) = LAMBDA; // ok auto pAuto = LAMBDA; // ok assert(typeid(pFptr) […]

¿Cuánto es demasiado con la palabra clave auto de C ++ 11?

He estado usando la nueva palabra clave auto disponible en el estándar C ++ 11 para tipos de plantillas complicadas, que es para lo que creo que fue diseñada. Pero también lo estoy usando para cosas como: auto foo = std::make_shared(); Y más escépticamente para: auto foo = bla(); // where bla() return a shared_ptr […]