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::tuple< std::string, ArgType, std::string > Key
Definition QedTablesArgParser.H:21
std::optional< std::variant< int, double, std::string > > ArgVal
Definition QedTablesArgParser.H:18
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
@ NoArg
Definition QedTablesArgParser.H:15
@ String
Definition QedTablesArgParser.H:15
@ Integer
Definition QedTablesArgParser.H:15
@ Double
Definition QedTablesArgParser.H:15