tamaño promedio por pené paises normal miembro mide mexico medio masculino los hombre cuanto cual años c++

c++ - promedio - ¿Puedes usar el tamaño de un miembro al declarar otro miembro?



tamaño promedio del miembro masculino a los 22 años (2)

Esto fue ilegal en C ++ 03 porque estos miembros son miembros de datos no estáticos.

A partir de C ++ 11, esto es legal ya que en un operando no evaluado puede usar miembros de datos no estáticos sin tener un objeto correspondiente.

¿Es esto legal C ++?

struct foo { int a[100]; int b[sizeof(a) / sizeof(a[0])]; };

GCC 4.6 lo acepta, pero MSVC 2012 no lo acepta. Parece que debería estar bien para mí, pero un poco de Google no ayudó y no sé dónde buscar en el estándar.

MSVC 2012 da el siguiente resultado:

error C2327: ''foo::a'' : is not a type name, static, or enumerator error C2065: ''a'' : undeclared identifier error C2070: ''''unknown-type'''': illegal sizeof operand warning C4200: nonstandard extension used : zero-sized array in struct/union


Intente esto: esta es una solución para MSVC 2010 y MSVC 2012

struct Aoo { typedef int ArrayType; ArrayType a[100]; }; struct foo : public Aoo { enum {bSize = sizeof(Aoo) / sizeof(Aoo::ArrayType)}; int b[bSize]; };