Generando estructuras dinámicamente en tiempo de compilación.

Tengo que generar una estructura de datos que contenga ciertos campos solo bajo ciertas condiciones. Esto normalmente siempre se traduce en algo como lo siguiente

struct MyStruct {
    int     alwaysHere;

#ifdef WHATEVER
    bool    mightBeHere;
#endif

    char    somethingElse;

#if SOME_CONSTANT > SOME_VALUE
    uint8_t alywasHereButDifferentSize;
#else
    uint16_t alywasHereButDifferentSize;
#endif
...
};

Desde mi punto de vista, esto se vuelve fácilmente feo e ilegible. Sin siquiera hablar sobre el código que maneja esos campos, usualmente también bajo ifdefs.

Estoy buscando una forma elegante de lograr el mismo resultado sin agregar ningún gasto general, pero con un código mucho más legible. La especialización en plantillas parece un poco excesiva, pero me parece que es la única alternativa.

¿C ++ 11 está agregando algo para lidiar con esta situación?

Cualquier sugerencia sería apreciada.

Respuestas a la pregunta(4)

Su respuesta a la pregunta