Облегченная библиотека конфигурации C ++ - PullRequest
13 голосов
/ 12 февраля 2012

Я ищу кроссплатформенную облегченную библиотеку конфигурации C ++ с неограниченной лицензией. Мне нужно что-то более сложное, чем стандартный файл свойств с разделами, но я не хочу использовать XML (слишком много написано: -)).

Я бы хотел написать конфигурацию следующим образом:

render = 
{
    window = 
    {
        width = 800,
        height = 600
    }
}

Ответы [ 2 ]

14 голосов
/ 12 февраля 2012

Есть буст property_tree . Лицензия разрешает коммерческое использование.

Ваш пример:

ptree pt;
pt.put("render.window.width", 800);
pt.put("render.window.height", 600);

Это может, например, быть экспортировано в JSON

write_json("my_config.json", pt);

, который будет выглядеть как

{
  "render":
  {
    "window":
    {
      "width": 800;
      "height": 600;
    }
  }
}

Таким же образом вы можете экспортировать в XML, INI и INFO.

5 голосов
/ 12 февраля 2012

Вы также можете попробовать JsonCpp и записать свои файлы конфигурации в Json, синтаксис которого очень похож на тот, который вам нравится:

// Configuration options
{
    // Default encoding for text
    "encoding" : "UTF-8",

    // Plug-ins loaded at start-up
    "plug-ins" : [
        "python",
        "c++",
        "ruby"
        ],

    // Tab indent size
    "indent" : { "length" : 3, "use_space": true }
}

Под MIT License так что это очень разрешительно.

...