tipos taylor significado prenda ortesis lumbares definicion corsé corset corse antiguo c++ c++11 initialization brace-initialization

c++ - taylor - corset significado



¿El signo igual marca una diferencia en la inicialización del corsé? p.ej. ''T a={}'' vs ''T a{}'' (1)

La única diferencia significativa que conozco es en el tratamiento de constructores explicit :

struct foo { explicit foo(int); }; foo f0 {42}; // OK foo f1 = {42}; // not allowed

Esto es similar a la inicialización "tradicional":

foo f0 (42); // OK foo f1 = 42; // not allowed

Ver [over.match.list] / 1.

Aparte de eso, hay un defecto (ver CWG 1270 ) en C ++ 11 que permite la elusión de llaves solo para la forma T a = {something}

struct aggr { int arr[5]; }; aggr a0 = {1,2,3,4,5}; // OK aggr a1 {1,2,3,4,5}; // not allowed

Aquí hay dos formas de inicializar una variable en C ++ 11:

T a {something}; T a = {something};

Probé estos dos en todos los escenarios en los que pude pensar y no noté la diferencia. Esta respuesta sugiere que hay una sutil diferencia entre los dos:

Para las variables, no presto mucha atención entre el T t = { init }; o T t { init }; estilos, creo que la diferencia es menor y, en el peor de los casos, solo resultará en un útil mensaje de compilación sobre el uso indebido de un constructor explícito.

Entonces, ¿hay alguna diferencia entre los dos?