¿Por qué se recomienda una inicialización uniforme (inicialización con llaves)?

Veo muchos lugares diferentes donde la inicialización uniforme esrecomendado. Sutter de hierbasrecomienda y da una lista cuandono para usarlo Parece que el consenso general es utilizar esta sintaxis.

Sin embargo, no veo por qué. Tiene el problema destd::initializer_list toma precedencia. Agregar unstd::initializer_list a una clase puede romper el código. Con las plantillas, no se recomienda su uso. Parece tener más excepciones que la forma "antigua". Ninguno de estos problemas existía a la antigua usanza.

No veo por qué la inicialización uniforme es superior. Mi conclusión es seguir usando() sintaxis y uso{} solamente en el caso de cuando quiero llamar a un constructor constd::initializer_list.

¿Por qué? ¿Qué da la inicialización uniforme?

prohíbe el estrechamiento: buena característica. Pero, como tengo advertencias de reducción activadastodas mi código (porque quiero conocer todos los límites en mi código, no solo en las inicializaciones), no necesito demasiado esta función.análisis más irritante: sí, eso es un problema, pero me topa con esto muy, muy raramente. Por lo tanto, no es una razón (para mí) para cambiar. Estos lugares, puedo usar{}.¿Hay algo más (tal vez, todavía estoy aprendiendo nuevas características de C ++)?

Con la forma "antigua", no había reglas para recordar, no era posible romper el código. Solo utilízalo y, a veces, muy, muy raramente, te encuentras con el análisis más irritante. Eso es todo.

¿Mi pensamiento está mal en alguna parte?

Respuestas a la pregunta(1)

Su respuesta a la pregunta