C ++: Constructor versus lista de inicializadores en estructura / clase

Un objeto de una estructura / clase (que no tieneconstructor) se puede crear usando unlista inicializadora. ¿Por qué esto no está permitido en la estructura / clase conconstructor?

struct r { int a; };
struct s { int a; s() : a(0) {} };
r = { 1 }; // works
s = { 1 }; // does not work