Оператор присваивания переходов часто должен быть объявлен noexcept (т.е. хранить тип в контейнерах STL). Но идиома "копирование и своп" позволяет определять как операторы присваивания копий, так и операции перемещения в одном фрагменте кода. Что делать с noexcept спецификатором в этом случае? Конструкция копии может быть брошена, но я сомневаюсь, может ли она нарушить спецификатор noexcept.
// Is it correct considering that T copy constructor can throw?
T& operator=(T other) noexcept;