c++ - 如何在 Boost::Program_Options 中支持配置文件语法 “key value”?

标签 c++ boost boost-program-options

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

最佳答案

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

libs/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));

关于c++ - 如何在 Boost::Program_Options 中支持配置文件语法 “key value”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6954317/

相关文章:

c++ - make_unique、工厂方法或客户端 API 的不同设计?

c++ - 如何在C++中转换为utf8字符串

c++ - Qwt 简单图示例

c++ - boost phoenix 的 map new_?

c++ - boost::program_options 可以实现这种可重复的选项吗?

c++ - 使用 boost program-options 的无效选项值异常

c++ - 如何在不使用 ((CMainFrame*) AfxGetMainWnd ())->... 的情况下访问 Mainfrm 成员变量状态?

C++ STL 比较类 : how to parameterize comp-class behaviour?

sockets - 如何检索 boost asio 套接字文件描述符

c++ - 在 boost::program_options 解析我的命令行参数后,如何获取非标志和非选项标记