【发布时间】:2012-11-16 14:58:15
【问题描述】:
已将此(1.52.0 版)集成到我的应用中,但偶然发现了上述问题。
在附加的示例中,what() 方法始终保持完整的 %canonical_option% 标记,并且不会替换为我的选项名称。
我正在使用 VS2008,已禁用 unicode(选项“无”)并从我的项目中删除了所有其他文件,只有 main.cpp 文件中的此代码。
还是我把这一切都弄错了,我应该调用其他东西来用正确的参数名称格式化异常消息?
#include <boost/program_options.hpp>
namespace po = boost::program_options;
using namespace std;
int main(int argc, char* argv[])
{
try {
po::options_description optionalParams("optional");
optionalParams.add_options()
("log_severity,l", po::value<int>()->required(), "Minimum severity logging level")
("log_file,g", po::value<string>(), "Full path to log file")
;
po::variables_map optMap;
po::parsed_options parsed = po::command_line_parser(argc, argv)
.options(optionalParams)
.allow_unregistered()
.run();
po::store(parsed, optMap);
po::notify(optMap);
}
catch(po::error e)
{
cout << e.what();
return 0;
}
return 0;
}
【问题讨论】: