c++ - 在 boost::program_options 解析我的命令行参数后,如何获取非标志和非选项标记

标签 c++ boost boost-program-options

在 python 中,我可以构建我的 optparse实例这样它会自动将选项和非选项/标志过滤到两个不同的桶中:

(options, args) = parser.parse_args()

使用 boost::program_options,我如何检索 token 列表,这些 token 是剩余的非选项和非标志 token ?

例如如果我的程序有标志

--foo 
--bar BAR

然后我传入命令行:

--foo hey --bar BAR you

我怎样才能得到一个仅由标记“嘿”和“你”组成的列表

最佳答案

这是一个例子:

namespace po = boost::program_options;    
po::positional_options_description m_positional;
po::options_description m_cmdLine;
po::variables_map m_variables;

m_cmdLine.add_options()
    (/*stuff*/)
    ("input", po::value<vector<string> >()->composing(), "")
;
m_positional.add("input", -1);
po::parsed_options parsed = po::command_line_parser(argc, argv)
                        .options(m_cmdLine)
                        .positional(m_positional)
                        .allow_unregistered()
                        .run();
// store, notify, etc

然后只需将“输入”命名选项作为字符串 vector ,一切就绪。

关于c++ - 在 boost::program_options 解析我的命令行参数后,如何获取非标志和非选项标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314717/

相关文章:

c++ - 仅在 boost::program_options 中的短选项

c++ - boost::program_options - 是否可以强制执行强制标志?

c++ - 使用 ReadFile WinAPI 读取 'Binary' 文件

c++ - 使用 Clang 的 scan-build 和 scons 和 C++11

c++ - 是否可以控制源文件中的 cl.exe 选项?

c++ - AVL 树插入 - 访问冲突读取位置(无法读取内存)

c++ - 使用索引几何 boost 多边形

c++ - 如何组合两个 Boost Geometry 变压器?

c++ - 使用 gcc-4.1.2 在 RHEL5 上使用 Python 2.7.1 boost 1.44

c++ - 跳过未知选项而不抛出 boost 程序选项