Использование boost :: program_options - PullRequest
7 голосов
/ 23 декабря 2010

В моей программе есть список пар - имя и размер.

Я хочу построить этот список из интерфейса командной строки, используя boost::program_options.

Он должен выглядеть примерно такthis:

myProg --value ("Джон", 10) --value ("Стив", 14) --value ("Marge", 28)

Мне также нужно, чтобы это было в порядке - Стив будет после Джона и перед Мардж в списке.Возможно ли это с boost::program_options?

Этот синтаксис CLI - просто идея получить список.Если есть, скажи лучше.

Ответы [ 2 ]

4 голосов
/ 24 декабря 2010

Вы просто определяете свой вариант

("value", value<vector<YourPairType>>()->composing(), "description")

и соответствующий

istream& operator >> (istream& in, YourPairType& pr) { /* ... */ }

, который читает YourPairType из in в вашем формате ("John",10). Разобранные параметры будут сохранены в порядке их появления в командной строке.

Вы можете добиться большей гибкости, если используете пользовательские валидаторы вместо operator >>.

0 голосов
/ 23 декабря 2010

Файл с каждой строкой, имеющей одну пару значений, может быть одним вариантом. Файл может быть простым текстовым файлом ascii или вы также можете использовать xml-файлы - см. boost serialization .

...