【发布时间】:2016-01-30 09:46:33
【问题描述】:
我已经多次尝试让这个工作无济于事。程序可以编译,但我能想到的用于提供给程序的每种时间戳格式都是无效的。
#include <boost/program_options.hpp>
#include <boost/optional.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <iostream>
#include <string>
using namespace boost::program_options;
using namespace std;
int main(int argc, const char** argv) {
boost::posix_time::ptime forceDate;
boost::optional<boost::posix_time::ptime> forceDateOptional;
options_description descr("Options");
descr.add_options()
("force-date,a", value(&forceDate)->value_name("<date>"), "...");
try {
variables_map args;
store(command_line_parser(argc, argv).options(descr).run(), args);
notify(args);
cout << "Done." << endl;
return 0;
} catch (std::exception& e) {
cerr << e.what() << endl;
return 1;
}
}
使用g++ -I /usr/local/include -L /usr/local/lib -lboost_program_options -lboost_system x.cpp 编译并使用./a.out --force-date 2012-01-03 运行。
这是抛出异常的错误:
the argument ('2012-01-03') for option '--force-date' is invalid
【问题讨论】:
-
是编译失败还是运行失败?显示错误消息。
-
运行失败。我已经给出了详细信息。
标签: c++ boost boost-program-options boost-date-time