static uint32_t get_symbol_id(parse_state & state, const char * src, size_t len) {
uint32_t next_id = static_cast<uint32_t>(state.symbol_ids.size());
- auto result = state.symbol_ids.insert(std::make_pair(std::string(src, len), next_id));
+ auto result = state.symbol_ids.emplace(std::string(src, len), next_id);
return result.first->second;
}
if (literal.empty()) {
return false;
}
- ret.push_back(std::make_pair(literal, true));
+ ret.emplace_back(literal, true);
literal.clear();
return true;
};
while (i < length) {
char c = sub_pattern[i];
if (c == '.') {
- seq.push_back(std::make_pair(get_dot(), false));
+ seq.emplace_back(get_dot(), false);
i++;
} else if (c == '(') {
i++;
_warnings.push_back("Unsupported pattern syntax");
}
}
- seq.push_back(std::make_pair("(" + to_rule(transform()) + ")", false));
+ seq.emplace_back("(" + to_rule(transform()) + ")", false);
} else if (c == ')') {
i++;
if (start > 0 && sub_pattern[start - 1] != '(') {
}
square_brackets += ']';
i++;
- seq.push_back(std::make_pair(square_brackets, false));
+ seq.emplace_back(square_brackets, false);
} else if (c == '|') {
- seq.push_back(std::make_pair("|", false));
+ seq.emplace_back("|", false);
i++;
} else if (c == '*' || c == '+' || c == '?') {
seq.back() = std::make_pair(to_rule(seq.back()) + c, false);
}
}
if (!literal.empty()) {
- seq.push_back(std::make_pair(literal, true));
+ seq.emplace_back(literal, true);
}
}
}
}
else {
if (cell_range_begin != kv_self.size) {
- cell_ranges.push_back({ cell_range_begin, i });
+ cell_ranges.emplace_back(cell_range_begin, i);
cell_range_begin = kv_self.size;
}
}
}
if (cell_range_begin != kv_self.size) {
- cell_ranges.push_back({ cell_range_begin, kv_self.size });
+ cell_ranges.emplace_back(cell_range_begin, kv_self.size);
}
// DEBUG CHECK: Sum of cell counts in ranges should equal the total cell count