Added mechanism to understand passed Option without value.
[command.git] / src / main.cpp
index 80aeb274803d70e63d9a90b7b056586a2c9bd847..5a42e860c14eaad667c3ca656e93be3b23ca85e1 100644 (file)
@@ -5,14 +5,24 @@
 #include "argument.h"
 #include "command.h"
 
+void argument_function(bool a) {
+    std::cout << "Argument: " << a << std::endl;
+}
+
+void option_function(std::string a) {
+    std::cout << "Help function " << a << std::endl;
+}
+
+void void_function(void) {
+    std::cout << "Void 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", [](std::string value)->void { std::cout << "Hello from lambda " << value << std::endl; }),
+        new command::Argument<bool>("File path", argument_function),
+        new command::Option<std::string>("f", "Optional file", option_function),
+        new command::Option<void>("h", "Help", void_function)
     });
 
     return 0;