aggregate-initialization

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.

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

Digamos que tengo un tipo y quiero hacer privado su constructor predeterminado. Escribo lo siguiente: class C { C() = d ... } Esto me parece un comportamiento muy sorprendente, inesperado y explícitamente no deseado. ¿Por qué esto está bien?

Reducir las conversiones en C++0x. ¿Soy solo yo, o esto suena como un cambio radical?

C++0x va a hacer el siguiente código y código similar mal formado, porque requiere una llamada conversión de estrechamiento d ... la conversión se ajustará al tipo de destino y producirá el valor original cuando se convierta de nuevo al tipo original.

Brace elision en std:: inicialización de matriz

Supongamos que hay un std::array a inicializar. Está bien si se usan llaves dobles: std::array<int, 2> x = {{0, 1}}; ... correcto en su tratamiento del tercer fragmento? ¿Ocurre la elisión del corsé en la inicialización de la lista, o no ocurre?

Constructor predeterminado eliminado. Los objetos todavía se pueden crear sometimes a veces

El ingenuo, optimista y oh.. así que visión equivocada de la sintaxis de inicialización uniforme de c++11 Pensé que desde C+ ... ROR: use of deleted function `foo::foo()` /* Fb */ foo f{3}; // ERROR: no matching function to call `foo::foo(init list)`

¿Puedo hacer referencia a Miembros Anteriores de una Lista Inicializadora?

Digamos que quiero hacer referencia a un miembro de un initializer_list que ya he definido. ¿Puedo hacerlo? Este código comp ... erado: "13 55" tanto en Visual Studio como en gcc , me gustaría saber que es legal: const int foo[2] = {13, foo[0] + 42};