这个问题是关于 C++ Boost program_options 库的。
所有教程都非常清楚,我应该在我完成的变量映射上调用 notify()
,但我不确定这实际上对我做了什么。将其注释掉似乎没有任何效果,文档也没有详细说明:
http://www.boost.org/doc/libs/1_47_0/doc/html/boost/program_options/notify.html
其他消息来源表明它运行“用户定义”功能。如果是这样,这些函数是如何注册的,它们是做什么的?他们会抛出异常吗?
原文由 olooney 发布,翻译遵循 CC BY-SA 4.0 许可协议
notify()
是 value_semantic 的 成员函数。它是一个钩子,一旦确定了选项的最终值,该选项应该采取的任何操作都可以自动完成并封装在它自己的函数中。这可以防止代码具有一个作用于每个选项的长函数。随着可能选项的增加,这种程序代码可能会变得笨拙。您可以 在 Boost 手册中看到设置通知功能的示例: