Теперь обычно перегрузку оператора следует использовать редко - в частности, когда это касается stdlib.
Хотя мне любопытно, какие могут быть подводные камни, если таковые имеются, кроме очевидных, что читатель может не ясно видеть, что происходитв коде - есть ли техническая причина воздерживаться от этой конкретной перегрузки?
std::string operator+(const std::string& lhs, const std::wstring& rhs) {
return lhs + to_utf8(rhs);
}
(также существует двойная перегрузка для выполнения обратного преобразования)
Я считаю, что это может упростить запись некоторых операций, например ::
std::wstring{L"hel"} + "lo " + getName();
Какие плюсы и минусы, в частности, вы видите какие-либо сценарии (технические), где это может'backfire'?
Производительность не имеет значения.