]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/stdalgo.h
Replace irc::stringjoiner with a generic stdalgo::string::join.
[user/henk/code/inspircd.git] / include / stdalgo.h
index f4465963a65f5bd0884831d647ca5f4ffea65799..bb5e122623277a9daa60a6ecd13a82852db74ed1 100644 (file)
@@ -95,6 +95,25 @@ namespace stdalgo
                        return (!strcasecmp(tocstr(str1), tocstr(str2)));
                }
 
+               /** Joins the contents of a vector to a string.
+                * @param sequence Zero or more items to join.
+                * @param separator The character to place between the items, defaults to ' ' (space).
+                * @return The joined string.
+                */
+               template<typename Collection>
+               inline std::string join(const Collection& sequence, char separator = ' ')
+               {
+                       std::string joined;
+                       if (sequence.empty())
+                               return joined;
+
+                       for (typename Collection::const_iterator iter = sequence.begin(); iter != sequence.end(); ++iter)
+                               joined.append(ConvToStr(*iter)).push_back(separator);
+
+                       joined.erase(joined.end() - 1);
+                       return joined;
+               }
+
                /** Replace first occurrence of a substring ('target') in a string ('str') with another string ('replacement').
                 * @param str String to perform replacement in
                 * @param target String to replace