boost::program_options и "короткие" ключи
От: SP_ Украина  
Дата: 25.06.07 17:16
Оценка:
Хочу запускать прораммы с "короткими"("-" или "/") параметрами командной строки вместо "длинных"("--"), предлагаемых бустом по умолчанию.
Беру туториал:
namespace po = boost::program_options;

po::options_description desc("Allowed options");
desc.add_options()
    ("help", "produce help message")
    ("compression", po::value<int>(), "set compression level")
    ;
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm); (1)
po::notify(vm);

test.exe --help //все хорошо
test.exe -help //в (1) получаю boost::program_options::unknown_option

Модифицирую:
namespace po = boost::program_options;
using namespace po::command_line_style;
po::options_description desc("Allowed options");
desc.add_options()
    ("help", "produce help message") 
    ("compression", po::value<int>(), "set compression level")
    ;
    

int style  = allow_short | short_allow_adjacent | short_allow_next | allow_dash_for_short; 

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

Результат аналогичный.
Поигрался с разными параметрами флажками style-а. Нужной комбинации не угадал. В чем я торможу?
Re: boost::program_options и "короткие" ключи
От: __bobik__ Украина http://farnetstat.narod.ru/
Дата: 25.06.07 17:51
Оценка: 2 (1)
Все банально, уважаемый, короткий ключ подразумевает, что вы будете использовать одну букву в ключе, то есть делайте вместо -help, -h. И все получится.
Если хотите использовать многобуквеные ключи, то придется использовать --
Re: boost::program_options и "короткие" ключи
От: SP_ Украина  
Дата: 26.06.07 06:38
Оценка:
В догонку:
boost 1.34.0
VS 8.0
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: boost::program_options и "короткие" ключи
От: SP_ Украина  
Дата: 26.06.07 06:43
Оценка:
Здравствуйте, __bobik__, Вы писали:

___>Все банально, уважаемый, короткий ключ подразумевает, что вы будете использовать одну букву в ключе, то есть делайте вместо -help, -h. И все получится.

___>Если хотите использовать многобуквеные ключи, то придется использовать --

И где про это можно прочесть ??

Поигрался с однобуквенными ключами. Результат аналогичный.

ЗЫ
ИМХО достаточно нелогично хардкодить символы разделения ключей.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: boost::program_options и "короткие" ключи
От: Pasternak  
Дата: 26.06.07 07:17
Оценка: 2 (1)
Здравствуйте, SP_, Вы писали:

SP_>Хочу запускать прораммы с "короткими"("-" или "/") параметрами командной строки вместо "длинных"("--"), предлагаемых бустом по умолчанию.


Попробуй так:
desc.add_options()
("help, h", "produce help message");

тогда будет работать как test.exe --help
так и test.exe -h
Re[2]: boost::program_options и "короткие" ключи
От: SP_ Украина  
Дата: 26.06.07 07:36
Оценка:
Здравствуйте, Pasternak, Вы писали:

P>Здравствуйте, SP_, Вы писали:


P>Попробуй так:


Угу, разобрался спасибо всем. К сожалению "мои" пользователи кроме винды ни в чем не работали. Поэтому обьяснить им почему они не могут написать /help откуда взялся этот "--" будет проблемно. Займусь велосипедостроением
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: boost::program_options и "короткие" ключи
От: Константин Л.  
Дата: 26.06.07 08:57
Оценка: :)
Здравствуйте, SP_, Вы писали:

SP_>Здравствуйте, Pasternak, Вы писали:


P>>Здравствуйте, SP_, Вы писали:


P>>Попробуй так:


SP_>Угу, разобрался спасибо всем. К сожалению "мои" пользователи кроме винды ни в чем не работали. Поэтому обьяснить им почему они не могут написать /help откуда взялся этот "--" будет проблемно. Займусь велосипедостроением


а ты перед процессингом реплейсь / на --
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.