Обычно следует избегать неявных преобразований, т. Е. Заставить все ваши назначения работать с одним и тем же типом с одной и другой стороны, особенно когда очень просто знать, какие типы задействованы. Полагаться или пытаться полагаться на неявные преобразования не очень хорошая идея.
Так что если:
strCurTag = static_cast<wstring>(revrsetagcacheiter->second);
не компилируется, тогда мы должны начать думать о проблеме.