c – Boost.Program_Options:当指定为命令行选项时,什么是有效
发布时间:2020-12-16 05:41:33 所属栏目:百科 来源:网络整理
导读:给出以下简单使用Boost.Program_Options: boost::program_options::options_description options("Options");options.add_options() ("my_bool_flag,b",boost::program_options::valuebool(),"Sample boolean switch)") ; 什么命令行参数将评估为false,以及
给出以下简单使用Boost.Program_Options:
boost::program_options::options_description options("Options"); options.add_options() ("my_bool_flag,b",boost::program_options::value<bool>(),"Sample boolean switch)") ; 什么命令行参数将评估为false,以及什么是真的? (即,假定程序命名为“foo”,并在命令行上执行: 解决方法
看看$(BOOST_ROOT)/libs/program_options/src/value_semantic.cpp你可以找到:
/* Validates bool value. Any of "1","true","yes","on" will be converted to "1".<br> Any of "0","false","no","off" will be converted to "0".<br> Case is ignored. The 'xs' vector can either be empty,in which case the value is 'true',or can contain explicit value. */ BOOST_PROGRAM_OPTIONS_DECL void validate(any& v,const vector<string>& xs,bool*,int) { check_first_occurrence(v); string s(get_single_string(xs,true)); for (size_t i = 0; i < s.size(); ++i) s[i] = char(tolower(s[i])); if (s.empty() || s == "on" || s == "yes" || s == "1" || s == "true") v = any(true); else if (s == "off" || s == "no" || s == "0" || s == "false") v = any(false); else boost::throw_exception(invalid_bool_value(s)); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |