|
|
||
|---|---|---|
| .vscode | ||
| README.md | ||
| argpars.cpp | ||
| argpars.hpp | ||
README.md
Парсер аргументов
Обработка аргументов при запуске программы.
Объект типа Hub принимает первым аргументом вектор объектов типа ConfigOption, где аргументы:
- Длинное имя аргумента
- Короткое имя аргемнта
- Наличие значения у аргумента:
NO(НЕТ),REQUIRED(ОБЯЗАТЕЛЬНО),OPTIONAL(НЕОБЯЗАТЕЛЬНО) - Указатель на предварительную функцию-обработчик перед получением фактического значения(ий) аргумента
Вторым аргументом устанавливается значение тихого режима (по умолчанию true) для отображения системных ошибок при чтении аргументов.
readArguments- чтение аргументов, где 3-ий аргумент функция на обработку ошибочных опций.getOption- получить объект опцииgetValues- получить значение опции. С параметромtrueвыполнить предварительную обработку функцией, переданной в качестве аргумента при создании объектаHub
#include <argpars.hpp>
void message()
{
std::cout << "Неверный аргумент" << std::endl;
exit(1);
}
typedef std::vector<std::string> arguments;
arguments print(const arguments &v)
{
std::cout << v.front() << std::endl;
return v;
}
int main(int argc, char *argv[])
{
args::Hub hub({
{"help", 'h', args::REQUIRED, print},
{"name", 'n', args::OPTIONAL, print}
}, false);
hub.readArguments(argc, argv, message);
arguments a = hub.getOption('h').getValues(true);
arguments b = hub.getOption('n').getValues(true);
return 0;
}