Fixed Option parameter. Added new example.
authorRafał Długołęcki <rafal@dlugolecki.net.pl>
Sun, 26 Apr 2015 06:27:31 +0000 (08:27 +0200)
committerRafał Długołęcki <rafal@dlugolecki.net.pl>
Sun, 26 Apr 2015 06:27:31 +0000 (08:27 +0200)
include/command.h
include/option.h
src/main.cpp

index f53227ea4a994d32e7b3c645b009def1f169b22f..9cf0a9fc5bba15fb9b229309df13c603d75cb385 100644 (file)
@@ -27,7 +27,6 @@ namespace command {
         Command(unsigned int argc, char *argv[], std::initializer_list<Parameter *> params)
             : args(params) {
             for(Parameter *param : params) {
-                std::cout << "Command foreach" << std::endl;
                 param->handle();
             }
         }
index fe0fc857ddf54cc6ee745cd6506174b112dbd027..fef4e31376287290af7a988f3fdb279efa04a151 100644 (file)
@@ -15,7 +15,7 @@ namespace command {
      */
     template<typename OptionType>
     class Option
-        : Argument<OptionType> {
+        : public Argument<OptionType> {
     public:
 //         typedef typename Argument<OptionType, Lambda>::FunctionType FunctionType;
     protected:
@@ -38,6 +38,8 @@ namespace command {
         virtual ~Option() { }
 
         virtual void handle() {
+            std::cout << "Option::handle()" << std::endl;
+            this->call(std::string("O"));
         }
     };
 }
index 80aeb274803d70e63d9a90b7b056586a2c9bd847..1cc8387696f464b7fb509fbda4f7e41eeb54ae14 100644 (file)
@@ -5,14 +5,15 @@
 #include "argument.h"
 #include "command.h"
 
+void some_function(std::string str) {
+    std::cout << "Some function" << std::endl;
+}
 
 int main(int argc, char *argv[]) {
     command::Command command(argc, argv, {
         new command::Argument<std::string>("File path", [](std::string value)->void { std::cout << "Hello from lambda " << value << std::endl; }),
-        new command::Argument<std::string>("File path", [](std::string value)->void { std::cout << "Hello from lambda " << value << std::endl; }),
-        new command::Argument<std::string>("File path", [](std::string value)->void { std::cout << "Hello from lambda " << value << std::endl; }),
-        new command::Argument<std::string>("File path", [](std::string value)->void { std::cout << "Hello from lambda " << value << std::endl; }),
-        new command::Argument<std::string>("File path", [](std::string value)->void { std::cout << "Hello from lambda " << value << std::endl; })
+        new command::Argument<std::string>("File path", some_function),
+        new command::Option<std::string>("h", "Help", some_function)
     });
 
     return 0;