Cita de: BatchianoISpyxolo en 14 Febrero 2013, 02:15 AMsi tienes estructuras o clases básicas (PODS), éstos carecen de inicializadores y, por tanto, el programa está mal formado.No. Si revisamos el tema que mencione con cuidado:
CitarParagraph 5.3.4/15 states that
A new-expression that creates an object of type T initializes that object as follows:
[...]
* If the new-initializer is of the form (), the item is value-initialized (8.5)
where value initialized for POD means zero-initialize.
[...]
If the new-initializer is omitted:
* If T is a (possibly cv-qualified) non-POD class type (or array thereof), the object is default-initialized (8.5). If T is a const-qualified type, the underlying class type shall have a user-declared default constructor.
* Otherwise, the object created has indeterminate value. If T is a const-qualified type, or a (possibly cv-qualified) POD class type (or array thereof) containing (directly or indirectly) a member of const-qualified type, the program is ill-formed;
En resumen:
* Si se utiliza el inicializador "()" en el caso de PODs su resultado es la asignación del valor 0.
* Si se omite el inicializador el valor almacenado es no determinado.
"ill-formed" solo aplica si 1) Se omite el inicializador y 2) el objeto esta calificado (directa o indirectamente) con el calificador const.
Un saludo