вот код, который я хочу написать.
int opt;
po::options_description desc("Allowed options");
desc.add_options()
("help","produce help message")
("compression",po::value<int>(&opt)->default_value(10),"optimization level")
("include-path,I", po::value< std::vector<std::string> >(), "include path")
("input file", po::value< std::vector<std::string> >(),"input file")
;
po::variables_map vm;
po::store(po::parse_command_line(argc,argv,desc),vm);
po::notify(vm);
if (vm.count("help")){
std::cout <<desc<<"\n";
return 1;
}
if (vm.count("compression")){
std::cout<<"Compression level was set to"<<vm["compression"].as<int>()<<".\n";
} else {
std::cout << "compression level was not set.\n";
}
if (vm.count("include-path")){
std::cout << "Include paths are: " << vm["include-path"].as< std::vector<std::string> > ()<< "\n";
}
Компилятор выдает ошибку для окончательного оператора if, где я хочу напечатать параметр include-path . ошибка, которую он дает,
rx_timed_samples.cpp: 62: 96: ошибка: нет совпадения для 'operator <<' в 'std :: operator << [с _Traits = std :: char_traits] ((* & std :: cout) , ((const char *) "Пути для включения:")) << (& vm.boost :: program_options :: variable_map :: operator [] ((* * std :: basic_string (((const char *) "include -path "), (<em> (const std :: allocator ) (& std :: allocator ())))))) -> boost :: program_options :: variable_value :: as с T = std: : vector, std :: allocator>> '
Я не понимаю? пожалуйста, помогите.