Estoy depurando un código que es esencialmente idéntico a esto:
struct Foo { int a; int b; };
struct Bar { Bar() {} Foo foo{0}; };
Cuando hago una instancia de Bar , parece que ambos ay bse inicializan a cero. ¿Está esto garantizado? ¿Dónde puedo encontrar eso en la especificación?
c++
initialization
XPlatformer
fuente
fuente

struct Foo { int a{}; int b{}; };tenga en cuenta las llaves adicionales después de los nombres de las variables. entonces siempre obtendrá valores inicializados. si necesita iniciar con otros valores, con un comportamiento definido, debe escribir un ctor como para cualquier otra claseRespuestas:
De acuerdo con cppreference.com
Foono tiene inicializadores miembro predeterminado (int b{0};), por lo quebserá inicializado por lista de inicialización con una lista vacía, lo que significa el valor de inicialización para los tipos no clase:b = int() // = 0.fuente