-CoreExport const std::string& SearchAndReplace(std::string& text, const std::string& pattern, const std::string& replace);
+template<typename T> const T& SearchAndReplace(T& text, const T& pattern, const T& replace)
+{
+ T replacement;
+ if ((!pattern.empty()) && (!text.empty()))
+ {
+ for (std::string::size_type n = 0; n != text.length(); ++n)
+ {
+ if (text.length() >= pattern.length() && text.substr(n, pattern.length()) == pattern)
+ {
+ /* Found the pattern in the text, replace it, and advance */
+ replacement.append(replace);
+ n = n + pattern.length() - 1;
+ }
+ else
+ {
+ replacement += text[n];
+ }
+ }
+ }
+ text = replacement;
+ return text;
+}