/*! @file @id $Id$ */ // 1 2 3 4 5 6 7 8 // 45678901234567890123456789012345678901234567890123456789012345678901234567890 #include void test_func() { std::cout<<"test parameter was given on command line"< > params; params.push_back(mrw::args::help()); params.push_back(mrw::args::exit()); options.push_back(mrw::args::declaration("h", "help", "show this help", params)); params.clear(); params.push_back(mrw::args::param(r, "number")); options.push_back(mrw::args::declaration("r", "repeat", "number of repetitions", params)); params.clear(); params.push_back(mrw::args::param(flag)); options.push_back(mrw::args::declaration("f", "flag", "check a flag", params)); params.clear(); params.push_back(mrw::args::param(txt, "text")); options.push_back(mrw::args::declaration("t", "text", "pass a text", params)); params.clear(); params.push_back(mrw::args::param(x, "x")); params.push_back(mrw::args::param(y, "y")); options.push_back(mrw::args::declaration("c", "coord", "add some 2D coordinates", params)); params.clear(); params.push_back(mrw::args::func(test_func)); options.push_back(mrw::args::declaration("", "test", "call test_func, no shortcut", params)); mrw::args::parse(argc, argv, "This is an example for argument processing.", options); #else mrw::args::parse(argc, argv, "This is an example for argument processing. If the" " description is very long, it is automatically splitted" " over several lines and indented on each new line." " Arguments may have several parameters. Help is" " generated automatically from the argument declaration." " The argument declaration contains long and short options" " and a list of parameters.", { {"h", "help", "show this help", {mrw::args::help(), mrw::args::exit()}}, {"r", "repeat", "number of repetitions", {mrw::args::param(r, "number")}}, {"f", "flag", "check a flag; this is a boolean, so it is false by " "default and true if the user specifies the flag on " "the command line", {mrw::args::param(flag)}}, {"t", "text", "pass a text", {mrw::args::param(txt, "text")}}, {"c", "coord", "add some 2D coordinates; this is an example on how " "you can add more than one parameter", {mrw::args::param(x, "x"), mrw::args::param(y, "y")}}, {"", "test", "call test_func, no shortcut", {mrw::args::func(test_func)}}, }, "Returns a status of 0 on success and 1 on any error."); #endif // show the result std::cout<