¿Por qué los miembros de mi estructura no se inicializan correctamente con `{}`? [duplicar

Esta pregunta ya tiene una respuesta aquí:

C y C ++: inicialización parcial de la estructura automática 5 respuestas

Tuve el siguiente código:

#include <iostream>

struct T
{
   int a, b, c;
};

int main()
{
   T t = {0};
   std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}

Salid:

0,0,0

Después de muchos años de este código funcionando felizmente en un entorno de producción crítico, cumpliendo una función vital, los requisitos del proyecto cambiaron y necesitaba que la salida fuera1,1,1.

Entonces, cambié{0} a{1}:

#include <iostream>

struct T
{
   int a, b, c;
};

int main()
{
   T t = {1};
   std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}

Salid:

1,0,0

Esperaba1,1,1 en su lugar.

¿Por qué mistructNo se inicializan todos los miembros de @ correctamente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta