ごめん、間違えてた。こうやってたんだ。
void* operator new( size_t size ) { return malloc( size ); }
話を整理すると、これをグローバルスコープで宣言してやると、
コンストラクタを呼んでないので new したclassのコンストラクタは
呼ばれない気がするんだけど、呼ばれるのはどうしてかなと。
例えば、bool T::operator == ( T& right ) { return T::compare( *this, right ); }
の compare を実行した後に、コンパイラが勝手に組み込みの == 比較演算をするのは
意味不明なわけじゃないですか。