я следующую программу:Почему boost :: program_options принимает нарезанные слова?
#include <boost/program_options.hpp>
bool check_options(int argc, char** argv)
{
using namespace boost::program_options;
variables_map vm;
// Command line options
std::string cfg_file_name;
options_description cmd_line("Allowed options");
cmd_line.add_options()
("help", "produce this help message")
;
store(parse_command_line(argc, argv, cmd_line), vm);
notify(vm);
if(vm.count("help"))
{
std::cout << cmd_line << std::endl;
return false;
}
return true;
}
int main(int argc, char** argv)
{
if(!check_options(argc, argv))
return 1;
return 0;
}
Когда я запускаю его с ./myprg --help
я получаю результат я ожидаю:
Allowed options:
--help produce this help message
Однако я получаю тот же результат, даже если я бегу: ./myprg --h
или ./myprg --he
или ./myprg --hel
. Должны ли эти последние варианты вызывать ошибку?
Похоже, что это «по умолчанию стиль". См. Это сообщение на сайте Boost http://lists.boost.org/boost-users/2007/02/25861.php –
yup, вот и все! Если вы напишете ответ, разместите эту ссылку, я соглашусь с ней. – Emiliano
работает так, как было разработано? – PlasmaHH