diff --git a/doomsday/libs/core/include/de/data/string.h b/doomsday/libs/core/include/de/data/string.h index faf1ad743a..bb0db01f9f 100644 --- a/doomsday/libs/core/include/de/data/string.h +++ b/doomsday/libs/core/include/de/data/string.h @@ -443,7 +443,7 @@ class DENG2_PUBLIC String : public QString static void advanceFormat(String::const_iterator &i, String::const_iterator const &end); - static String join(QList const &stringList, String const &sep = String()); + static String join(QList const &stringList, String const &sep = {}); }; /** diff --git a/doomsday/libs/core/include/de/libcore.h b/doomsday/libs/core/include/de/libcore.h index 8bc570366a..7945067fa8 100644 --- a/doomsday/libs/core/include/de/libcore.h +++ b/doomsday/libs/core/include/de/libcore.h @@ -650,6 +650,17 @@ inline OutContainer map(const InContainer &input, Func func) { return out; } +template +inline OutContainer map(const InContainer &input, + std::function func) { + OutContainer out; + for (auto i = input.begin(); i != input.end(); ++i) { + out.push_back(func(*i)); + } + return out; +} + template inline ContainerType filter(ContainerType const &c, std::function func) { diff --git a/doomsday/libs/core/src/data/string.cpp b/doomsday/libs/core/src/data/string.cpp index f25bdc2bc3..403dd20c53 100644 --- a/doomsday/libs/core/src/data/string.cpp +++ b/doomsday/libs/core/src/data/string.cpp @@ -609,9 +609,9 @@ void String::advanceFormat(String::const_iterator &i, String::const_iterator con } } -String String::join(QList const &stringList, String const &sep) +String String::join(StringList const &stringList, String const &sep) { - if (stringList.isEmpty()) return ""; + if (stringList.isEmpty()) return {}; String joined; QTextStream os(&joined);