Resultados de la búsqueda a petición "aggregate-initialization"

6 la respuesta

Inicializando una matriz de miembros en el inicializador de constructor

class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; };Creo que la razón es que las matrices solo se pueden inicializar con= sintaxis, es decir: int arr[3] = {1,3,4}; ...

3 la respuesta

Constructor predeterminado eliminado. Todavía se pueden crear objetos ... a veces

La visión ingenua, optimista y oh ... tan equivocada de la sintaxis de inicialización uniforme de c ++ 11Pensé que desde C ++ 11 los objetos de tipo definidos por el usuario deberían construirse con el nuevo{...} sintaxis en lugar de la ...

1 la respuesta

Inicialización agregada de C ++ 11 para clases con inicializadores de miembros no estáticos

¿Está permitido en estándar: struct A { int a = 3; int b = 3; }; A a{0,1}; // ???¿Esta clase todavía es agregada?clang acepta este código, perogcc no lo hace

1 la respuesta

¿Puedo hacer referencia a miembros anteriores de una lista de inicializadores?

Digamos que quiero referirme a un miembro de uninitializer_list que ya definí ¿Puedo hacerlo? Este código compila y da el esperado: "13 55" en Visual Studio ygcc [http://ideone.com/ntPcVl], Me gustaría saber que es legal: const int foo[2] = ...

8 la respuesta

Reducción de conversiones en C ++ 0x. ¿Soy solo yo, o esto suena como un cambio radical?

C ++ 0x hará que el siguiente código y un código similar estén mal formados, ya que requiere un llamadoreducción de conversión de undouble a unint. int a[] = { 1.0 };Me pregunto si este tipo de inicialización se usa mucho en el código del mundo ...

2 la respuesta

¿Cuándo es válida la inicialización agregada en C ++ 11?

Dejemos que tengamos el siguiente código: #include <iostream> #include <string> struct A { A() {} A(const A&) { std::cout << "Copy" << std::endl; } A(A&&) { std::cout << "Move" << std::endl; } std::string s; }; struct B { A a; }; int main() { ...

2 la respuesta

¿Cuándo un constructor privado no es un constructor privado?

Digamos que tengo un tipo y quiero que su constructor predeterminado sea privado. Escribo lo siguiente: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a private constructor ...

2 la respuesta

Brace elision in std :: array initialization

Supongamos que hay una

1 la respuesta

En un lugar dado en una lista de inicialización agregada, ¿los valores pasados ​​a lugares anteriores son seguros para leer de los miembros correspondientes? [duplicar]