規格読んでいたらこんなことをしていいというようなことが書いてあった。
(デストラクタを呼んでnewを呼びなおす)

そんでoperator =()をコピーコンストラクタで実装するってのを思いついた。
効率は良くない場合があるかも知れないが。
class hoge {
  /* 略 */
public:
    hoge(const hoge&);
    ~hoge();
    hoge& operator =(const hoge& h)
    {
        if (this != &h)
        {
            this->~hoge();
            new(this) hoge(h);
        }
        return *this;
    }
};