我试图提供std::string
参数作为选项的描述。一般而言,其生命范围未定义的论点。具体来说,我想提供翻译。
using namespace boost::program_options;
using namespace boost::locale;
options_description desc (translate ("Hello world!"));
desc.add_options ()
("help", translate ("Veni vidi vici"))
;
add_options()
返回一个实例,options_description_easy_init
该实例预先定义了()
运算符,以便您可以使用上面的语法。现在,该操作员只接受const char*
描述,这让我很恼火。因此,我有以下问题:
- 解决这个问题的方法是什么?
这个类的所有权政策是什么?这些指针是否仅存储,因此源应该与描述一样多地存在,或者它是安全的(糟糕!):
("help", translate ("Veni vidi vici").str ().c_str ())
仅
const char_type*
作为描述参数的理由是什么?