initializer-list

¿Cuándo usar el inicializador corsé?

En C++11, tenemos esa nueva sintaxis para inicializar clases que nos da un gran número de posibilidades de cómo inicializar v ... , por lo que ir por el camino correcto es esencial. I me pregunto si hay una guía universal que sintaxis uno debería elegir.

¿Cómo sería una lista de inicializador extendido std::map?

Si existe, ¿cómo sería una lista de inicializadores extendida std::map? He probado algunas combinaciones de... bueno, todo lo que se me ocurrió con GCC 4.4, pero no encontré nada que compilara.

Inicializar una matriz miembro en el inicializador del constructor

class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ pr ... el problema? P.d. Por favor, no mencione vectores, boost::arrays, y su superioridad a los arrays, que soy muy consciente de.

lista inicializador y semántica de movimiento

Me permite mover elementos de un std::initializer_list<T>? #include <initializer_list> #include <utility> ... de valores como los contenedores normales de la biblioteca estándar de C++, prefiero estar seguro que lamentarlo y preguntar.

¿Puedo inicializar un vector de tipo move-only?

Si paso el siguiente código a través de mi instantánea GCC 4.7, intenta copiar las unique_ptrs en el vector. #include <ve ... t_delete; std::unique_ptr = std:: unique_ptr]' ¿Es GCC correcto al intentar copiar los punteros de la lista inicializador?

¿Por qué el número de elementos en una lista del inicializador causa un error de llamada ambiguo?

¿Por qué las dos primeras llamadas a doSomething están bien por el compilador, pero el uso de dos elementos en la lista caus ... ", "stack", "overflow"}); // OK doSomething({"hello", "stack"}); // C2668 'doSomething': ambiguous call return 0; }

La lista del inicializador de C++11 falla , pero solo en listas de longitud 2

Rastreé un error de registro oscuro al hecho de que las listas inicializadoras de longitud 2 parecen ser un caso especial! ¿ ... variado de una más que la longitud de la primera cadena a el total de las longitudes de las dos cadenas en el inicializador.

C error de compilación: "Es posible que el objeto de tamaño variable no se inicialice"

¿Por qué recibo el error "Objeto de tamaño variable puede no ser inicializado" con el siguiente código? int boardAux[length][length] = {{0}};

¿Por qué la inicialización de la matriz de pares todavía necesita llaves dobles en C++14?

Con el estándar C++14, la inicialización de un std::array puede ir con llaves simples (ver http://en.cppreference.com/w/cpp/ ... icialización de un buen array viejo funciona con llaves simples std::pair<int, int> c[3] {{1, 11}, {2, 22}, {3, 33}};

¿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}?

Constructor de lista de inicializador cerrado con llave

Tengo Fenotipo de clase con el siguiente constructor: Phenotype(uint8 init[NUM_ITEMS]); Puedo crear un Fenotipo como este: ... de definir un constructor que toma una lista de inicializadores encerrada en llaves. ¿Alguien sabe cómo se puede hacer esto?

Convertir un vector a una lista inicializadora

Todo el mundo crea std::vector a partir de std::initializer_list, pero ¿qué pasa al revés? Eg. si utiliza un std::initialize ... sion etc. La pregunta más general es: cómo crear un stl::initializer_list a partir de un iterable STL, no solo std::vector.

¿Cómo inicializo una matriz miembro con una lista inicializadora?

Me estoy poniendo al día con C++0x, y probando cosas con g++ 4.6 Acabo de probar el siguiente código, pensando que funcionar ... int const data[2]; Foo(std::initializer_list<int const>& ini) : data(ini) {} }; Foo f = {1,3};

¿Qué podría salir mal si copy-list-initialization permite constructores explícitos?

En el estándar de C++, §13.3.1.7 [terminado.coincidir.list], the following is stated: En copy-list-initialization, si se ... rogramador ya está expresando el deseo de hacer algún tipo de "conversión". ¿Qué podría salir mal? ¿Qué me estoy perdiendo?

Listas de inicializadores y RHS de operadores

No entiendo por qué las listas de inicializadores no se pueden usar en el RHS de un operador. Considere: class foo { }; st ... ándar C++ prohibiría esto? O dicho de otra manera, ¿por qué falla esto en lugar de baz << bar{1, -2, "foo", 4, 5}; ?

std::lista de inicializadores como argumento de función

Por alguna razón pensé que C++0x permitía std::initializer_list como argumento de función para funciones que esperan tipos qu ... // error: could not convert '{"hello", "world", "test"}' to 'std::vector...' function( {"hello", "world", "test"} ); }

¿Por qué un miembro de const podría inicializarse dos veces?

A continuación se muestra un fragmento de código que se puede compilar y ejecutar sin error en vs2015 #include<iostream&g ... da es 555. Pero por lo que sé,const el objeto debe inicializarse solo una vez,después de lo cual el valor no es modificable.

¿Por qué usar argumentos variádicos ahora cuando las listas de inicializadores están disponibles?

Me he estado preguntando cuáles son las ventajas de los argumentos variádicos sobre las listas de inicializadores. Ambos ofre ... nta el número de argumentos. Entonces, ¿qué me falta, además de la posibilidad de usar use variadic argumentos en C también?

¿Puedo inicializar un vector STL con 10 del mismo entero en una lista de inicializadores?

¿Puedo inicializar un vector STL con 10 del mismo entero en una lista inicializadora? Mis intentos hasta ahora me han fallado.

¿Por qué se prefiere el constructor de lista std::initializer cuando se usa una lista inicializer entre corchetes?

Considere el código #include <iostream> class Foo { int val_; public: Foo(std::initializer_list<Foo> il ... entonces Foo(int) es el único constructor invocado, ya que el entero 10 ahora no se puede convertir implícitamente a un Foo.