Biblioteka w C++ służąca do obsługi parametrów z linii komend.

Niewątpliwą zaletą jest prostota obsługi. De facto wystarczą już trzy linie kodu, by móc obsługiwać jakikolwiek parametr.

Przykład

Command command(argc, argv, {
    new Argument<std::string>("Some Argument", [](std::string value)->void { std::cout << "This is value: " << value << std::endl; })
});

Zgodnie z przykładem, wymagamy argumentu którego wartość ma być jakimś ciągiem znaków. Argument opisany jest jako: “Some Argument”. Gdy biblioteka wykryje że został podany, to przekaże go zgodnie z oczekiwanym typem.

Dodatkowo od wersji 0.3 wprowadzona została możliwość podpinania metod klasy. W ten sposób można automatycznie podpinać parametry z linii komend do wybranych setterów.

Kolejny przykład

#include <iostream>
#include <string>
#include <functional>

#include "option.h"
#include "command.h"

using namespace command;

class ExampleClass {
public:
    void _option(std::string a) {
        std::cout << "File: " << a << std::endl;
    }
};
int main(int argc, char **argv)
{
    ExampleClass c;

    Command command(argc, argv, {
        new Option<std::string>("f", "Optional file", std::bind(&ExampleClass::_option, &c, std::placeholders::_1))
    });

    // dalsze działanie aplikacji
    return 0;
}

Więcej przykładów można znaleźć w paczce z kodem.

Potencjalnym minusem jest wymóg posiadania kompilatora zgodnego ze standardem c++11.

W przypadku błędów, braków wymaganych parametrów, bądź gdy są niezgodne względem oczekiwanego typu, rzucane są odpowiednie wyjątki.

Do pobrania

Obecna wersja: 0.3

Linki