7 std::vector<std::string> leftover;
8 leftover.reserve(tokens->size());
10 for (
size_t i = 0; i < tokens->size(); i++) {
11 const std::string& token = (*tokens)[i];
12 if (token.rfind(
"--", 0) == 0) {
14 std::string flag_name;
15 std::string value_string;
18 if ((i + 1) < tokens->size()) {
19 const std::string& next_token = (*tokens)[i + 1];
21 if (next_token.rfind(
"--", 0) != 0) {
22 value_string = next_token;
26 value_string =
"true";
29 value_string =
"true";
37 throw std::runtime_error(
"Unrecognized flag: " + flag_name);
43 leftover.push_back(token);