Boost 文档没有提供带有如何解析环境变量示例的代码片段。相反,它描述了附加前缀和转换为小写的奇怪行为。我试图提取 HOSTNAME 环境变量,但我能够做的是使用此代码提取 PREFIX_HOSTNAME 变量,我必须手动设置它。
std::string hostname;
boost::program_options::options_description desc_env;
desc_env.add_options()("hostname", boost::program_options::value<string_type>(&hostname));
boost::program_options::variables_map vm_env;
boost::program_options::store(boost::program_options::parse_environment(desc_env, "PREFIX_"), vm_env);
boost::program_options::notify(vm_env);
std::cout << "hostname: " << hostname << '\n'; // correct value of PREFIX_HOSTNAME environent variable
Run Code Online (Sandbox Code Playgroud)
那么,如何使用 boost::program_options 准确提取 HOSTNAME 环境变量?