e50baa0724 | ||
---|---|---|
.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;
}