Как обнаружить опечатку с помощью Boost.program_options?

Я использую библиотеку boost.program_options. Рассмотрим этот упрощенный случай.

po::options_description desc("Usage");
desc.add_options()
("uninstall,u", "uninstall program")
("custom,c", po::wvalue<std::wstring>(), "specify custom action");

po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);

Я хочу выдать ошибку в такой командной строке:

testprog.exe -u c- action1

Обратите внимание, пользователь допустил опечатку " c- "вместо" -c ". Но синтаксический анализатор понимает это как единственную опцию -u. Как мне обрабатывать такие случаи?

7
задан vkrzv 25 October 2011 в 10:57
поделиться