私は大きな C++ プロジェクトを持っています。このプロジェクトでは、他のライブラリのクラスを必要とするデバッグ機能を実装しようとしています。残念ながら、これらのクラスは、プロジェクト内で呼び出されるクラスと同じ名前と名前空間を共有しています。複数の定義を避けるために静的ライブラリを使用しようとしましたが、もちろんコンパイラはその問題について不平を言います。だから私の質問:コンパイラが関数内の呼び出されたクラスについて知らなくても、関数のライブラリを作成することは可能ですか?
「保護された関数」のように、またはライブラリからのすべてのコードを関数コード内に配置するように、わかりません..
編集: g++ コンパイラを使用しています。
マックス、私は知っていますが、今のところ他に方法がありません。
回路図、問題は。
計画:
#include a.h // (old one)
#include a2.h
return a->something();
return a2->something(); //debug function
デバッグ機能 a2:
#include a.h // (new one!!)
return a->something(); // (new one!)
これまでのコンパイルプロセスは次のようになります。
g++ project -la -la2
これは非常に単純化されたドラフトです。しかし、実際にはそれだけです。