編集: いくつかのコードをリファクタリングdefine
し、名前空間エイリアスに置き換える予定です。「マクロは悪」という理由だけで、私はこれを行うことはできません。なぜ変更したいのか、変更しないと何がうまくいかないのかを説明する必要があります。
「マクロは悪」というスタンスはさておき、#define
ネームスペース エイリアスの欠点は何ですか?
コードを取る
#define MY_NAMESPACE my_namespace
対
namespace MY_NAMESPACE = my_namespace;
エイリアスを持つ理由は、質問の範囲外です。また、名前空間の名前が一意であり、他の場所には表示されないと仮定することもできます (つまり、その名前空間を参照するだけで、現在も将来も変数やクラスを参照することはできません)。とにかく)、そこにあいまいさはありません。