というかやはり const メンバを持つクラスに代入を定義するところに難がある気がする
具体的にどういう設計かは書いてないからこれ以上は指摘しようがない

>117
例外を送出しない swap を実装しているとして

A tmp(a);
tmp.swap(*this);
return *this;

っていうか基本