diff --git a/common/namegenerator/namegen.cpp b/common/namegenerator/namegen.cpp index fa632c844..3ef880ea4 100644 --- a/common/namegenerator/namegen.cpp +++ b/common/namegenerator/namegen.cpp @@ -125,20 +125,6 @@ const std::unordered_map>& Generator return *symbols; } - -#ifdef HAVE_CXX14 -using std::make_unique; -#else -// make_unique is not available in c++11, so we use this template function -// to maintain full c++11 compatibility; std::make_unique is part of C++14. -template -std::unique_ptr make_unique(Args&&... args) -{ - return std::unique_ptr(new T(std::forward(args)...)); -} -#endif - - Generator::Generator() { } @@ -353,17 +339,17 @@ Generator::Generator(const std::string &pattern, bool collapse_triples) { std::unique_ptr last; std::stack> stack; - std::unique_ptr top = make_unique(); + std::unique_ptr top = std::unique_ptr(); for (auto c : pattern) { switch (c) { case '<': stack.push(std::move(top)); - top = make_unique(); + top = std::unique_ptr(); break; case '(': stack.push(std::move(top)); - top = make_unique(); + top = std::unique_ptr(); break; case '>': case ')': @@ -408,7 +394,7 @@ Generator::Generator(const std::string &pattern, bool collapse_triples) { std::unique_ptr g = top->produce(); if (collapse_triples) { - g = make_unique(std::move(g)); + g = std::unique_ptr(new Collapser(std::move(g))); } add(std::move(g)); } @@ -424,16 +410,16 @@ void Generator::Group::add(std::unique_ptr&& g) while (!wrappers.empty()) { switch (wrappers.top()) { case reverser: - g = make_unique(std::move(g)); + g = std::unique_ptr(new Reverser(std::move(g))); break; case capitalizer: - g = make_unique(std::move(g)); + g = std::unique_ptr(new Capitalizer(std::move(g))); break; } wrappers.pop(); } if (set.size() == 0) { - set.push_back(make_unique()); + set.push_back(std::unique_ptr()); } set.back()->add(std::move(g)); } @@ -441,8 +427,8 @@ void Generator::Group::add(std::unique_ptr&& g) void Generator::Group::add(char c) { std::string value(1, c); - std::unique_ptr g = make_unique(); - g->add(make_unique(value)); + std::unique_ptr g = std::unique_ptr(); + g->add(std::unique_ptr(new Literal(value))); Group::add(std::move(g)); } @@ -450,20 +436,20 @@ std::unique_ptr Generator::Group::produce() { switch (set.size()) { case 0: - return make_unique(""); + return std::unique_ptr(new Literal("")); case 1: return std::move(*set.begin()); default: - return make_unique(std::move(set)); + return std::unique_ptr(new Random(std::move(set))); } } void Generator::Group::split() { if (set.size() == 0) { - set.push_back(make_unique()); + set.push_back(std::unique_ptr()); } - set.push_back(make_unique()); + set.push_back(std::unique_ptr()); } void Generator::Group::wrap(wrappers_t type) @@ -479,14 +465,14 @@ Generator::GroupSymbol::GroupSymbol() : void Generator::GroupSymbol::add(char c) { std::string value(1, c); - std::unique_ptr g = make_unique(); + std::unique_ptr g = std::unique_ptr(); try { static const auto& symbols = SymbolMap(); for (const auto& s : symbols.at(value)) { - g->add(make_unique(s)); + g->add(std::unique_ptr(new Literal(s))); } } catch (const std::out_of_range&) { - g->add(make_unique(value)); + g->add(std::unique_ptr(new Literal(value))); } Group::add(std::move(g)); } @@ -533,4 +519,4 @@ std::string tostring(const std::wstring & s) } return std::string(buf.data(), wn); -} \ No newline at end of file +}