boost::any_cast 使用程序选项 C++ 抛出

boost::any_cast throw with program options c++

本文关键字:程序 选项 抛出 C++ any cast boost      更新时间:2023-10-16

我有以下代码;

using namespace std;
using namespace boost::program_options;
using namespace boost::filesystem;
using namespace cv;
namespace fs = boost::filesystem;

int     frames2skip;
options_description desc("Allowed options");
desc.add_options();
("frames2skip", value<int>(&frames2skip)->default_value(2));
variables_map opts;
store(parse_command_line(argc, argv, desc), opts);
frames2skip = opts["frames2skip"].as<int>();

在最后一行分配'frames2skip'后出现以下错误:

what():  boost::bad_any_cast: failed conversion using boost::any_cast 
Aborted (core dumped)

出了什么问题以及如何解决此问题?

desc.add_options();
               // ^ rogue semicolon, the next line is a separate statement made up
               // of parenthesized comma-expression and has no effect on `desc`.
("frames2skip", value<int>(&frames2skip)->default_value(2));