CHoge& F()
{
 return hoge;
}

CHoge hoge = F();

これコンパイル通るんですよね・・・。
CHoge& hoge = F() にするところを & が抜けて、デストラクタが余計に呼び出されて・・・orz

こういうのを防ぐために、コピーコンストラクタおよび代入演算子を private にする、ってのは
設計的にありですか?