1 #ifndef QED_TABLES_ARG_PARSER_
2 #define QED_TABLES_ARG_PARSER_
7 #include <unordered_map>
18 using ArgVal = std::optional<std::variant<int, double, std::string>>;
21 using Key = std::tuple<std::string, ArgType, std::string>;
24 using ParsedArgs = std::unordered_map<std::string, ArgVal>;
36 return std::get<T>(*arg_val);
47 ParsedArgs ParseArgs (
const std::vector<Key>& keys,
const int argc,
char const*
const* argv);
54 void PrintHelp (
const std::vector<Key>& cmd_list);
Definition: QedTablesArgParser.H:13
T GetVal(const ArgVal &arg_val)
Gets the value out of an ArgVal (std::optional<std::variant<int, double, std::string>>) object.
Definition: QedTablesArgParser.H:34
void PrintHelp(const std::vector< Key > &cmd_list)
Prints the command line options.
Definition: QedTablesArgParser.cpp:86
std::unordered_map< std::string, ArgVal > ParsedArgs
Definition: QedTablesArgParser.H:24
std::optional< std::variant< int, double, std::string > > ArgVal
Definition: QedTablesArgParser.H:18
std::tuple< std::string, ArgType, std::string > Key
Definition: QedTablesArgParser.H:21
ParsedArgs ParseArgs(const std::vector< Key > &keys, const int argc, char const *const *argv)
Function to parse the command line arguments.
Definition: QedTablesArgParser.cpp:62
ArgType
Definition: QedTablesArgParser.H:15