10 enum ConvertType { ParseInt, ParseDouble, ParseString };
18 void SetValue(
const std::string &key, T value) {
19 Arguments[key] = value;
23 void AddArgument(
const std::string &key, T value,
const std::string &shortname,
int nargs,
const std::string help,
25 this->shortName[shortname] = key;
26 this->reverseShortName[key] = shortname;
27 this->help[key] = help;
28 this->nargs[key] = nargs;
29 this->SetValue(key, value);
30 this->Conversion[key] = cv;
34 T GetValue(
const std::string &key, T defaultValue)
const {
35 auto iterator = this->Arguments.find(key);
36 if (iterator == this->Arguments.end())
return defaultValue;
37 return std::any_cast<T>(iterator->second);
42 void SetHelpLine(std::string helpLine) { this->HelpLine = helpLine; }
45 std::string ExecutableName;
47 std::vector<std::string> CommandLine;
48 std::vector<std::string> Positionals;
49 std::map<std::string, ConvertType> Conversion;
50 std::map<std::string, std::any> Arguments;
51 std::map<std::string, std::string> shortName;
52 std::map<std::string, std::string> reverseShortName;
53 std::map<std::string, std::string> help;
54 std::map<std::string, int> nargs;
Definition: AnyParse.hh:12
Definition: CCCrossSecMessenger.hh:29