C++ 在内部定义范围

C++ 在内部定义范围,c++,c++11,C++,C++11,我想跳过某个范围,直接访问静态变量,而不必写入所有范围 nts::CLI::Mode::AMode::Out 其中Out是指向静态变量的指针,指向我希望通过编写来访问的静态变量 nts::退出 有没有一种方法可以使用preprocessor define或我的命名空间中的另一个指针来实现这一点 可能只是架构错误,我应该将静态变量放在nts命名空间中吗?最干净的方法是定义别名,例如,针对您的特定情况: 使用Out=CLI::Mode::AMode::Out;在nts名称空间内 当然,您可以在任何级

我想跳过某个范围,直接访问静态变量,而不必写入所有范围

nts::CLI::Mode::AMode::Out

其中Out是指向静态变量的指针,指向我希望通过编写来访问的静态变量

nts::退出

有没有一种方法可以使用preprocessor define或我的命名空间中的另一个指针来实现这一点


可能只是架构错误,我应该将静态变量放在nts命名空间中吗?

最干净的方法是定义别名,例如,针对您的特定情况: 使用Out=CLI::Mode::AMode::Out;在nts名称空间内

当然,您可以在任何级别的命名空间或类中定义任何其他名称别名,如使用O=nts::CLI::Mode::AMode::Out;,O是新名字,等等


通常不赞成包含整个名称空间,因为如果结果是“名称空间污染”,但也会起作用:使用nts::CLI::Mode::AMode

你为什么要这样做?这里的动机是什么?如果您想减少写入量,您可以说在代码中使用nts::CLI::Mode::Amode::Out并愉快地使用Out,而无需再次写入完整的命名空间限定名并重新写入nts、CLI、Mode和Amode所有命名空间?不,nts是命名空间,其他是classI只是将my移出nts命名空间,这解决了我的问题,而且更加一致