如何在Boost :: Program_Options中支持配置文件语法“键值”?

时间:2011-08-05 09:39:24

标签: c++ boost boost-program-options

默认配置文件语法为“key = value”。如何支持配置文件语法“键值”?

1 个答案:

答案 0 :(得分:0)

语法由内置命令行解析器决定。如果需要,您可以提供自己的解析器类。看一下主要的解析函数,在Boost源代码中使用void common_config_file_iterator :: get()。

库/ program_options / SRC / config_file.cpp:94

// Handle section name
if (*s.begin() == '[' && *s.rbegin() == ']') {
    m_prefix = s.substr(1, s.size()-2);
    if (*m_prefix.rbegin() != '.')
        m_prefix += '.';
}
else if ((n = s.find('=')) != string::npos) {

    string name = m_prefix + trim_ws(s.substr(0, n));
    string value = trim_ws(s.substr(n+1));