Command
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