summaryrefslogtreecommitdiffstats
path: root/src/generator.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-04-06 21:16:13 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-04-06 21:16:13 +0200
commit7b8ebfcef1dada98ff36aeb4d16cd3c06517e879 (patch)
tree7fd3ade95dec27f108cff50b96554a898412c44e /src/generator.cpp
parent1bb22babd9f978be24c203d919f3c9760df8f3d8 (diff)
downloadsolar-7b8ebfcef1dada98ff36aeb4d16cd3c06517e879.tar
solar-7b8ebfcef1dada98ff36aeb4d16cd3c06517e879.zip
Don't use map::emplace
It doesn't work with GCC 4.7...
Diffstat (limited to 'src/generator.cpp')
-rw-r--r--src/generator.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/generator.cpp b/src/generator.cpp
index 5b9766e..9350f40 100644
--- a/src/generator.cpp
+++ b/src/generator.cpp
@@ -87,7 +87,7 @@ void generator_t::generate_itemsets() {
item_t shifted = item;
shifted.shift();
- std::set<item_t> &set = new_sets.emplace(sym, empty_set).first->second;
+ std::set<item_t> &set = new_sets.insert(std::make_pair(sym, empty_set)).first->second;
set.insert(std::move(shifted));
}
@@ -124,12 +124,12 @@ generator_t::generator_t(const std::vector<std::tuple<item_t, std::vector<std::s
for (size_t i = 0; i < rules.size(); i++) {
item_t rule = std::get<0>(rules[i]);
- nonterminals.emplace(rule.get_lhs());
- nonterms.emplace(rule.get_lhs(), i);
+ nonterminals.insert(rule.get_lhs());
+ nonterms.insert(std::make_pair(rule.get_lhs(), i));
while (rule.has_next()) {
const symbol_t &sym = rule.get_next_symbol();
- items.emplace(sym, rule);
+ items.insert(std::make_pair(sym, rule));
if (sym.get_type() != SYMBOL_TYPE_NONTERM)
terminals.insert(sym);
@@ -137,7 +137,7 @@ generator_t::generator_t(const std::vector<std::tuple<item_t, std::vector<std::s
rule.shift();
}
- rule_ids.emplace(rule, i);
+ rule_ids.insert(std::make_pair(rule, i));
}
generate_itemsets();