#include <string>
#include <iostream>
template <class E, class T = std::char_traits<E>, unsigned N = 0>
std::basic_string<E, T> convertLiteral(char const(& lit)[N])
{ return std::basic_string<E, T>(lit, lit+N); }
int main()
{
std::wstring wfoo(L"Oh my foo!");
auto tag = convertLiteral<wchar_t>("foo");
auto pos = wfoo.find(tag);
if (pos != std::wstring::npos)
wfoo.replace(pos, tag.length(), L"bar");
else
std::wcout << "meh!\n";
std::wcout << wfoo;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPGNsYXNzIEUsIGNsYXNzIFQgPSBzdGQ6OmNoYXJfdHJhaXRzPEU+LCB1bnNpZ25lZCBOID0gMD4Kc3RkOjpiYXNpY19zdHJpbmc8RSwgVD4gY29udmVydExpdGVyYWwoY2hhciBjb25zdCgmIGxpdClbTl0pCnsgcmV0dXJuIHN0ZDo6YmFzaWNfc3RyaW5nPEUsIFQ+KGxpdCwgbGl0K04pOyB9CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6d3N0cmluZyB3Zm9vKEwiT2ggbXkgZm9vISIpOwoKICAgIGF1dG8gdGFnID0gY29udmVydExpdGVyYWw8d2NoYXJfdD4oImZvbyIpOwogICAgYXV0byBwb3MgPSB3Zm9vLmZpbmQodGFnKTsKICAgIGlmIChwb3MgIT0gc3RkOjp3c3RyaW5nOjpucG9zKQogICAgICB3Zm9vLnJlcGxhY2UocG9zLCB0YWcubGVuZ3RoKCksIEwiYmFyIik7CiAgICBlbHNlCiAgICAgIHN0ZDo6d2NvdXQgPDwgIm1laCFcbiI7CiAgICBzdGQ6Ondjb3V0IDw8IHdmb287Cn0=