次のコードを検討してください-
namespace N1
{
class A
{
//some implementation
}
class B
{
//some implemntation
}
}
namespace N2
{
class A
{
//slightly different implementation
}
class B
{
//slightly different implementation
}
}
明らかに、両方のアセンブリを一緒に使用することはできません-
そして、解決策は、完全修飾クラス名を使用することです。N1名前空間クラスを使用する数千行のコードをリファクタリングする場合。N1を使用するか、N2を使用するかは、プロセスの開始時に1回決定されます。
C++の条件付きコンパイル機能よりも少し高度なもの
#ifdef debug
#include <N1.h>
#elif
#include <N2.h>
#endif
不可能に聞こえたら申し訳ありませんが、私の好奇心から、それは可能だろうかと思います-
if (...)
{
using N1;
}
else
{
using N2;
}