一時オブジェクト禁止できたぽい

あの後ちょっと考えたら配置newとか全く不要で,普通に

class NoTemp {
public:
    NoTemp(const NoTemp *me) {
        if (this != me)
            throw std::logic_error("USAGE: NoTemp nt(&nt);");
    }
};

で余裕でした.ちなみに(コンパイラとオプションによるが) NoTemp nt = &nt; だと一時オブジェクトからcopy constructする形になって例外が投げられたw 変数定義の右辺で定義されようとしている変数が使えるのは規格内のはず(ほんとか?