c++ - Boost 程序选项添加选项语法

标签 c++ boost boost-program-options

我正在编写一个使用 Boost 程序选项库的程序,我注意到以下语法自从我看到它以来一直困扰着我:

desc.add_options()
        ("help","produce help message")
        ( /* other flag, value, description pairs here */)
;

我看到在标题中,operator() 被覆盖,但我不确定这如何使它在语法上是正确的。

其次,与只调用 add_options() 多次相比,这种语法有什么优势(除了炫耀您可以像这样操作语法之外)?

最佳答案

add_options 成员函数返回 options_description_easy_init 类型的对象。后者重载了 operator() 以返回对自身的引用。这使您可以像在代码段中显示的那样链接调用。

链接调用和多次调用 add_options 的区别在于,在前一种情况下,会创建一个 options_description_easy_init 实例,并且每次调用 operator () ,它将选项添加到所有者(options_description)。如果您要多次调用 add_options,则每次调用都会创建一个新的 options_description_easy_init 实例。

关于c++ - Boost 程序选项添加选项语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10486588/

相关文章:

c++ - 调用 boost parseOptions 时保持预设(非默认)值

c++ - boost::program_options:如何在没有 "--"或 "-"的情况下指定命令

c++ - 从 IE DOM 获取 HTML Head

c++ boost format float - 如何指定我不想要 .和以下零

c++ - boost::multi_index_container 与 random_acces 和 hashed_unique

c++ - 如何使用 boost::spirit 解析数学表达式并将其绑定(bind)到函数

c++ - 将 boost::program_options 分组到强制组中

c++ - C++中纯虚函数的实现

c++ - 如何避免在基类中调用函数?

c++ - 我的 char 数组使用 Visual Studios 2017 C++ 在 318 个字符处截断