Еще одна ошибка повышения

В этом коде я получаю огромную ошибку

static void ParseTheCommandLine(int argc, char *argv[])
{
int count;
int seqNumber;

namespace po = boost::program_options;

std::string appName = boost::filesystem::basename(argv[0]);

po::options_description desc("Generic options");
desc.add_options()
("version,v", "print version string")
("help", "produce help message")
("sequence-number", po::value<int>(&seqNumber)->default_value(0), "sequence number")
("pem-file", po::value< vector<string> >(), "pem file")
;

po::positional_options_description p;
p.add("pem-file", -1);

po::variables_map vm;
po::store(po::command_line_parser(argc, argv).
options(desc).positional(p).run(), vm);
po::notify(vm);

if (vm.count("pem file"))
{
cout << "Pem files are: "<< vm["pem-file"].as< vector<string> >() << "\n";
}

cout << "Sequence number is " << seqNumber << "\n";

exit(1);

../../../FIXMarketDataCommandLineParameters/FIXMarketDataCommandLineParameters.hpp|98|error: нет совпадения для оператора ‘<<В ‘std :: operator<< [with _Traits = std :: char_traits] (((std :: basic_ostream>&) (& std :: cout)), ((const char *) «Pem-файлы:»)) << ((const boost :: program_options :: variable_value *) vm.boost :: program_options :: variable_map :: operator [] (((const std :: string&) (& std :: basic_string, std :: allocator> (((const char *) «pem-file»), (((const std :: allocator)&) ((const std :: allocator *) (& std :: allocator ())))))))) -> boost :: program_options :: variable_value :: as с T = std :: vector, std :: allocator>, std :: allocator, std :: allocator> >> ‘|

1

Решение

Векторы не реализуются ostream & operator<<(std::ostream &),

Вы, вероятно, должны сделать:

cout << "Pem files are: ";
for (auto & x : vm["pem-file"].as< vector<string> >())
cout << x << "\n";
3

Другие решения

Других решений пока нет …