Всем привет.
Использую boost_program_options для парсинга параметров командной строки:
C++ (Qt)
...
...
boost::program_options::options_description general_desc("General options");
general_desc.add_options()
...
...
;
...
...
boost::program_options::options_description additional_desc("Additional options");
additional_desc.add_options()
...
...
("list-commands", "Show available commands with their description.")
;
...
...
...
boost::program_options::options_description desc;
desc.add(general_desc);
desc.add(additional_desc);
boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm);
if (vm.count("help")) {
// do something
} else if (vm.count("list-commands")) {
// print available commands
} else {
// do something
}
где использую дополнительный параметр --list-commands для вывода на экран список неких команд.
Так вот, если писать неполную опцию, типа --list-c, --list-co - то оно интерпретируется как --list-commands
.. WTF?
Так должно быть, или это баг буста (1.61.0) ? Или фича или я что-то не так делаю?