#include #include #include using ArgListT = std::vector; using ArgParseCpp::Parser; template std::vector & operator<<(std::vector &vec, const T & val) { vec.push_back(val); return vec; } int main(int argc, char *argv[]) { // Test the parser on the arguments provided in main() if(argc > 1) { Parser parser; parser.Parse(argc, argv); } // Test the parser in various predefined scenarios else { if(0) {// automatic help message Parser parser; parser.AddParameter(ArgParseCpp::ParserParam("-v", "--verbose", ArgParseCpp::StandaloneParam, ArgParseCpp::Bool, "Makes the program more verbose.")); parser.AddParameter(ArgParseCpp::ParserParam("-a", "--all", ArgParseCpp::StandaloneParam, ArgParseCpp::Bool, "Does all the things.")); parser.AddParameter(ArgParseCpp::ParserParam("-n", "--nope", ArgParseCpp::StandaloneParam)); parser.AddParameter(ArgParseCpp::ParserParam("-d", "--decimate", ArgParseCpp::SingleValueParam, ArgParseCpp::Int, "Decimates the signal by a factor d.")); parser.AddParameter(ArgParseCpp::ParserParam("-b", "--babar", ArgParseCpp::SingleValueParam, ArgParseCpp::Int)); parser.AddParameter(ArgParseCpp::ParserParam("-c", "", ArgParseCpp::SingleValueParam, ArgParseCpp::Double)); parser.AddParameter(ArgParseCpp::ParserParam("-o", "", ArgParseCpp::SingleValueParam, ArgParseCpp::String)); parser.AddParameter(ArgParseCpp::ParserParam("-e", "", ArgParseCpp::EqualParam, ArgParseCpp::Int)); parser.PrintHelp(); } if(0) {// sanitize the input arguments and display help whenever -h or --help is seen std::string argString = "programName -h blabla hehe hoho lalaland"; Parser parser; parser.Parse(argString); } if(0) {// parse some boolean arguments std::string argString = "programName -v --all"; Parser parser; parser.AddParameter(ArgParseCpp::ParserParam("-v", "--verbose", ArgParseCpp::StandaloneParam, ArgParseCpp::Bool, "Makes the program more verbose.")); parser.AddParameter(ArgParseCpp::ParserParam("-a", "--all", ArgParseCpp::StandaloneParam)); parser.AddParameter(ArgParseCpp::ParserParam("-b", "--brief", ArgParseCpp::StandaloneParam)); parser.AddParameter(ArgParseCpp::ParserParam("-z", "", ArgParseCpp::StandaloneParam)); parser.PrintHelp(); parser.Parse(argString); parser.PrintParsedArguments(); } // if(0) {// parse single value arguments std::string argString = "programName -a 5 -b 12.654 -s blabla_mon_negro hehe"; Parser parser; parser.AddParameter(ArgParseCpp::ParserParam("-a", "--all", ArgParseCpp::SingleValueParam, ArgParseCpp::Int)); parser.AddParameter(ArgParseCpp::ParserParam("-b", "--brief", ArgParseCpp::SingleValueParam, ArgParseCpp::Double)); parser.AddParameter(ArgParseCpp::ParserParam("-s", "", ArgParseCpp::SingleValueParam, ArgParseCpp::String)); parser.PrintHelp(); parser.Parse(argString); parser.PrintParsedArguments(); } } return 0; }