移動代入演算子は、多くの場合、noexcept として宣言する必要があります (つまり、型を STL コンテナーに格納するため)。しかし、copy-and-swap イディオムを使用すると、copy-代入演算子と move-代入演算子の両方を 1 つのコードで定義できます。この場合、noexcept 指定子をどうするか? コピー構造はスローできますが、noexcept 指定子に違反できるかどうかは疑問です。
// Is it correct considering that T copy constructor can throw?
T& operator=(T other) noexcept;