質問です。
newのオーバーライドなのですが、適用するソース範囲を制限することはできませんでしょうか。
例えば「このCPPファイルの中のnewのみオーバーライド」や「このクラスのメンバー関数の中でつかわれるnewのみオーバーライド」が欲しいのです。

最も外側でoperator newをオーバーライドすると、全てのnewが上書きされますよね。
とある組み込み機器の環境でこれに困っていまして、システム側が勝手にnewを使ってるっぽいのです。

オーバーライドしたnewの中身には、自前メモリー管理システムが入っているのに、その管理クラスの初期化前に呼ばれてエラーになってしまいます。
制限によって、システム側の勝手にnew呼び出しの前に処理を書くことができませんし、初期化時の値が保証されている変数も存在しません。(あればnewの中でそれをフラグにして分岐を行なうのですが)


例えばあるクラスの中で行なうnewのみをオーバーライドできるというのが理想です。

・CPPファイルを分ければOKかと思ったのですが、リンクの段階で「すでに定義されています」エラー

・(自作)CAppクラスのCApp::operator newをオーバーライドすれば、CAppの中で使われているnewがオーバーライドされるのかと思ったら、new CAppがオーバーライドされるだけだった