33 #ifndef EMP_COMMAND_LINE_H 34 #define EMP_COMMAND_LINE_H 38 #include "../base/vector.h" 46 for (
size_t i = 0; i < (size_t) argc; i++) {
54 for (
size_t i = 0; i < args.
size(); i++) {
55 if (args[i] == pattern)
return (
int) i;
62 return (
find_arg(args, pattern) != -1);
67 const int pos =
find_arg(args, pattern);
75 const int pos =
find_arg(args, pattern);
76 if (pos == -1)
return 0;
77 if (pos >= (
int) args.
size() - 1)
return -1;
78 var = args[(size_t)pos+1];
84 std::string & var1, std::string & var2) {
85 const int pos =
find_arg(args, pattern);
86 if (pos == -1)
return 0;
87 if (pos >= (
int) args.
size() - 2)
return -1;
88 var1 = args[(size_t)pos+1];
89 var2 = args[(size_t)pos+2];
95 const int pos =
find_arg(args, pattern);
96 if (pos == -1)
return 0;
97 if (pos >= (
int) args.
size() - 1)
return -1;
98 var = stoi(args[(
size_t)pos+1]);
104 const int pos =
find_arg(args, pattern);
105 if (pos == -1)
return 0;
106 if (pos >= (
int) args.
size() - 1)
return -1;
107 var = stod(args[(
size_t)pos+1]);
113 template <
typename... Ts>
116 const int pos =
find_arg(args, pattern);
117 if (result == 1) args.
erase(args.
begin()+pos, args.
begin()+pos+
sizeof...(Ts)+1);
int find_arg(const emp::vector< std::string > &args, const std::string &pattern)
Definition: command_line.h:53
int use_arg_value(emp::vector< std::string > &args, const std::string &pattern, Ts &...vars)
Definition: command_line.h:114
void push_back(PB_Ts &&...args)
Definition: vector.h:189
bool use_flag(emp::vector< std::string > &args, const std::string &pattern)
Definition: command_line.h:66
size_t size() const
Definition: vector.h:151
emp::vector< std::string > args_to_strings(int argc, char *argv[])
Definition: command_line.h:44
iterator begin() noexcept
Definition: vector.h:153
If we are in emscripten, make sure to include the header.
Definition: array.h:37
int get_arg_value(emp::vector< std::string > &args, const std::string &pattern, std::string &var)
Definition: command_line.h:74
iterator erase(ARGS &&...args)
Definition: vector.h:207
bool has_arg(const emp::vector< std::string > &args, const std::string &pattern)
Definition: command_line.h:61