【问题标题】:boost::program_options multitoken value from fileboost::program_options 文件中的多令牌值
【发布时间】:2022-06-30 00:03:05
【问题描述】:

我正在尝试从 ini 文件中设置多令牌值。

  commonOptions.add_options()("ccf.multiPort", po::value<std::vector<int>>()->multitoken(), "multi port");

从命令行解析多令牌值效果很好

./main --ccf.multiPort 123 423 421

但是我无法在 ini 文件中设置相同的值

[ccf]
multiPort = 1234 2356 7745

产生以下错误

terminate called after throwing an instance of 'boost::wrapexcept<boost::program_options::invalid_option_value>'
  what():  the argument ('1234 2356 7745') for option 'ccf.multiPort' is invalid

我也试过

[ccf]
multiPort = 1234,2356,7745

Boost::program_options versino 1.75 OS linux Compiler gcc 版本 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)

有人知道正确的格式吗?

请帮助我避免深入研究源代码;)

【问题讨论】:

    标签: c++ boost ini


    【解决方案1】:

    嗯...这个有效

    [ccf]
    multiPort = 1234 
    multiPort = 2356 
    multiPort = 7745
    

    但有点难看。我可以使用类似的东西

    [ccf]
    multiPort = 1234 2356 7745
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多