| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как в boost::program_options парсить обяз.параметр |
| Автор: EvilsInterrupt 18.6.2012, 22:27 |
| Хочу чтобы у моей консольной тулзы был интерфейс: tools.exe [options] filename как обрабатывать опции понял, но вот как сделать обработку параметра без указания какой- либо опции, в примере выше это filename. Т.е. мне нужно знать как обрабатывать'unlabeled' параметры. Это возможно? Среди примеров в e:\source\boost_1_49_0\libs\program_options\example\ я не нашел. ( Может кто ткнет в нужную строчку и в сорец? пример того что хочу получить: c:>\tools.exe -d -e -o e:\samples\test00.dat как мне написать обработку ком. страки так чтобы получить этот "e:\samples\test00.dat" ? |
| Автор: bsa 19.6.2012, 12:26 |
| читай внимательно документацию и самоучители. То, что тебе нужно, называется "позиционным параметром" (в терминах boost::program_options): http://www.boost.org/doc/libs/1_49_0/doc/html/program_options/tutorial.html#id2499896 |
| Автор: EvilsInterrupt 19.6.2012, 19:05 | ||
Проблема была в непонимании терминологии, спасибо за:
|
| Автор: EvilsInterrupt 25.6.2012, 09:08 | ||||||
| bsa, А можешь еще подсказать к привести вывод "help"-опции к виду похожему на SYNOPSYS от readelf? (http://www.freebsd.org/cgi/man.cgi?query=readelf&apropos=0&sektion=0&manpath=FreeBSD+9.0-RELEASE&arch=default&format=html) У меня пока такое:
как видишь в моем случае '--input-file arg' никаким образом не намекает пользователю что это позиционный аргумент, более того пользователь может не знать термина "позиционный", как я неделю назад. Куда лучше это сделать на манер readelf :
это более наглядней! Мой код пока такой:
Добавлено через 8 минут и 41 секунду может быть через hidden опции, но как тогда пользователь узнает что существует возможность задать позиционный аргумент не заглядывая в readme.txt? |
| Автор: Randajad 26.6.2012, 13:09 |
| Подниму темку, что-ли... boost::po принимает uint8_t переменную за символ со всеми вытекающими. Это баг po или нет и нужно использовать uint(16|32)? |