list-initialization

¿Por qué la inicialización de listas (usando llaves) es mejor que las alternativas?

MyClass a1 {a}; // clearer and less error-prone than the other three MyClass a2 = {a}; MyClass a3 = a; MyClass a4(a); Por Qué? No pude encontrar una respuesta en SO, así que déjame responder a mi propia pregunta.

¿Por qué se compila este código (C++11) sin un error de desajuste de tipo?

std::vector<char> p = {"abc", "def"}; "abc" y "def" no son char, ¿por qué el compilador no me da un error sobre este tipo de desajuste?

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)`

Reducir la conversión a bool en la lista-inicialización-comportamiento extraño

Considere esta pieza de código de C++11: #include <iostream> struct X { X(bool arg) { std::cout << arg < ... s tipos integrales.48 A el sinónimo de tipo integral es tipo entero. (Estaba empezando a cuestionar todo en esta etapa...)