summaryrefslogtreecommitdiff
path: root/tclap-1.2.1/examples/test4.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tclap-1.2.1/examples/test4.cpp')
-rw-r--r--tclap-1.2.1/examples/test4.cpp106
1 files changed, 106 insertions, 0 deletions
diff --git a/tclap-1.2.1/examples/test4.cpp b/tclap-1.2.1/examples/test4.cpp
new file mode 100644
index 0000000..a1dd88e
--- /dev/null
+++ b/tclap-1.2.1/examples/test4.cpp
@@ -0,0 +1,106 @@
+
+
+#include "tclap/CmdLine.h"
+#include "tclap/DocBookOutput.h"
+#include "tclap/ZshCompletionOutput.h"
+#include <iostream>
+#include <string>
+
+using namespace TCLAP;
+using namespace std;
+
+
+// This exemplifies how the output class can be overridden to provide
+// user defined output.
+class MyOutput : public StdOutput
+{
+ public:
+
+ virtual void failure(CmdLineInterface& c, ArgException& e)
+ {
+ static_cast<void>(c); // Ignore input, don't warn
+ cerr << "my failure message: " << endl
+ << e.what() << endl;
+ exit(1);
+ }
+
+ virtual void usage(CmdLineInterface& c)
+ {
+ cout << "my usage message:" << endl;
+ list<Arg*> args = c.getArgList();
+ for (ArgListIterator it = args.begin(); it != args.end(); it++)
+ cout << (*it)->longID()
+ << " (" << (*it)->getDescription() << ")" << endl;
+ }
+
+ virtual void version(CmdLineInterface& c)
+ {
+ static_cast<void>(c); // Ignore input, don't warn
+ cout << "my version message: 0.1" << endl;
+ }
+};
+
+
+bool _boolTestB;
+bool _boolTestA;
+string _stringTest;
+
+void parseOptions(int argc, char** argv);
+
+int main(int argc, char** argv)
+{
+
+ parseOptions(argc,argv);
+
+ cout << "for string we got : " << _stringTest<< endl
+ << "for bool B we got : " << _boolTestB << endl
+ << "for bool A we got : " << _boolTestA << endl;
+
+}
+
+
+void parseOptions(int argc, char** argv)
+{
+ try {
+
+ CmdLine cmd("this is a message", ' ', "0.99" );
+
+ // set the output
+ MyOutput my;
+ //ZshCompletionOutput my;
+ //DocBookOutput my;
+ cmd.setOutput(&my);
+
+ //
+ // Define arguments
+ //
+
+ SwitchArg btest("B","sB", "exist Test B", false);
+ SwitchArg atest("A","sA", "exist Test A", false);
+
+ ValueArg<string> stest("s", "Bs", "string test", true, "homer",
+ "string");
+ cmd.add( stest );
+ cmd.add( btest );
+ cmd.add( atest );
+
+ //
+ // Parse the command line.
+ //
+ cmd.parse(argc,argv);
+
+
+ //
+ // Set variables
+ //
+ _stringTest = stest.getValue();
+ _boolTestB = btest.getValue();
+ _boolTestA = atest.getValue();
+
+
+ } catch ( ArgException& e )
+ { cout << "ERROR: " << e.error() << " " << e.argId() << endl; }
+}
+
+
+