24#ifndef IO_CLI_READER_H_
25#define IO_CLI_READER_H_
36 std::vector<std::string> _tokens;
40 for (
int i=1; i < argc; ++i) {
41 _tokens.emplace_back(argv[i]);
47 return std::find(_tokens.begin(), _tokens.end(), name) != _tokens.end();
52 auto iter = std::find(_tokens.begin(), _tokens.end(), name);
53 if (iter != _tokens.end() && ++iter != _tokens.end()){
61 template <
typename TYPE>
66 std::from_chars(str.data(), str.data() + str.size(), value);
77std::string CLIreader::getValueOrFallback<std::string>(
78 const std::string& name, std::string fallback)
const {
80 return operator[](name);
Very simple CLI argument parser.
CLIreader(int &argc, char **argv)
std::string operator[](const std::string &name) const
Returns value of token after name (i.e. by convention the value assigned to name)
TYPE getValueOrFallback(const std::string &name, TYPE fallback) const
Return value of name as TYPE or fallback if not provided.
bool contains(const std::string &name) const
Returns true iff name is specified.
Top level namespace for all of OpenLB.