Очень полезно поддерживать вложение в конфигурационных файлах. Что-то вроде JSON .
Поскольку значения параметров могут быть скалярами, массивами и вложенными группами параметров, они могут храниться в std::map
из boost::variant
, чье значение может быть рекурсивным скаляром, массивом или другим std::map
. Обратите внимание, что std::map
сортирует по имени, поэтому, если важен исходный порядок параметров в конфигурационном файле, также должен быть последовательный индекс параметров. Это может быть достигнуто с помощью boost::multi_index
с упорядоченным или хешированным индексом для быстрого поиска и последовательным индексом для обхода параметров в исходном порядке файла конфигурации.
Я не проверял, что карта свойств повышения может сделать это из того, что я слышал.
Можно хранить все значения в виде строк (или массивов строк для значений массива), преобразовывая их в тип назначения только при обращении к нему.