Хорошо, так что я все придерживаюсь идиомы копирования и обмена и я думаю, что в основном знаю, как это реализовать.
Однако или база кода использует класс CString MFC как строку, и это не так. не собираюсь измениться.
Так как swap
не должен (должен ???) быть ничем, я не могу делать
std::swap(this->my_cstring, rhs.my_cstring);
так как это создаст временный объект CString, который может вызывать. (Плюс это неэффективно.)
Так где я остаюсь? Стоит ли добавить пробную ловушку? Должен ли я действительно позволять этому (ну, крайне редко) состоянию нехватки памяти вызывать исключение и приводить к сбою подкачки?
Глядя на реализацию CStrings, не похоже, что есть член или функция, позволяющая менять местами ...
CString
способом 100% сохранения исключений. - person Martin Ba   schedule 05.10.2011