Динамическое создание структур во время компиляции

Я должен создать структуру данных, которая содержит определенные поля только при определенных условиях. Обычно это всегда означает что-то вроде следующего

struct MyStruct {
    int     alwaysHere;

#ifdef WHATEVER
    bool    mightBeHere;
#endif

    char    somethingElse;

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

С моей точки зрения, на это легко смотреть безобразно и нечитаемо. Даже не говоря о коде, который обрабатывает эти поля, обычно под ifdefs тоже.

Я ищу элегантный способ достижения того же результата без каких-либо дополнительных затрат, но с большим количеством кода. более читабельным. Шаблонная специализация кажется немного излишней, но мне кажется быть единственной альтернативой.

Добавляет ли C ++ 11 что-нибудь для решения этой ситуации?

Любое предложение будет оценено.

Ответы на вопрос(4)

Ваш ответ на вопрос