Лучший способ инкапсулировать «необязательные» поля в структуре в целом в C ++?

У меня много конкретных структур, и я хочу обозначить поля как необязательные (присутствующие или отсутствующие). Просто интересно, какие идеи есть у людей для достижения этой цели. пример структуры (поля также могут быть другими структурами, даже векторами структур):

 struct LogonMessage_t
       {
          Header_t header; // this points to another struct containing all primitives
          std::string username;
          std::string password;
          std::vector<LogonOption_t> LogonOptions;
          int subaccountid;
          std::string Text;
       }

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

5
задан Paul R 21 March 2011 в 14:33
поделиться