编辑:我打算重构一些代码,并用define
命名空间别名替换。我不能这样做只是因为“宏是邪恶的”。我需要解释我为什么要做出改变,如果我不这样做会出什么问题。
抛开“宏是邪恶的”的立场不谈,#define
over a namespace alias 的缺点是什么?
拿代码
#define MY_NAMESPACE my_namespace
相对
namespace MY_NAMESPACE = my_namespace;
有别名的原因不在问题的范围内。您还可以假设命名空间的名称足够独特以至于它不会出现在其他任何地方(即它只是引用该命名空间,它不能 - 现在不能,将来不能 - 引用变量或类或无论如何),所以那里不会有歧义。