X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;ds=sidebyside;f=include%2Fargument.h;h=bf5fc3354f304c7b894252069969451275ec7fff;hb=e8acdc5555d6e3e726ba689eb0454b870deb5871;hp=5690e5dbf6ba2973147535ce32d66459ad23dd95;hpb=e7c2ad96ad56116b2bfca1000f425287b1a02da2;p=command.git diff --git a/include/argument.h b/include/argument.h index 5690e5d..bf5fc33 100644 --- a/include/argument.h +++ b/include/argument.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "parameter.h" #include "callable.h" @@ -31,7 +32,7 @@ namespace command { * @param description Description of current Argument * @param function Function used to handle current Argument. */ - Argument(const std::string & description, void (*function)(ParameterType)) + Argument(const std::string & description, std::function function) : Parameter(description), Callable(function) { } @@ -45,6 +46,7 @@ namespace command { */ virtual void handle() { this->call(value); + this->used = true; } /** @@ -64,20 +66,24 @@ namespace command { * against next value. */ virtual bool understand(const std::string & argv) { - if (!isUsed()) { - std::stringstream ss; + std::stringstream ss; - ss << argv; - ss >> value; + ss << std::fixed << argv; + ss >> value; - if (!ss.fail()) { - this->used = true; - return true; - } + if (!ss.fail()) { + return true; } return false; } + + /** + * \inheritdoc + */ + virtual unsigned int valuePosition(const std::string & ) { + return 0; + } }; }