相关疑难解决方法(0)

重命名命名空间

我已经做了很长时间的C++但是我今天早上遇到了一个问题,我无法给出答案:"是否可以在C++中为命名空间创建别名?"

让我举个例子.假设我有以下标题:

namespace old
{
  class SomeClass {};
}
Run Code Online (Sandbox Code Playgroud)

其中,由于未指明的原因,必须成为:

namespace _new
{
  namespace nested
  {
    class SomeClass {}; // SomeClass hasn't changed
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我有一个旧的代码库引用SomeClass,我可以通过添加以下内容快速(并且肮脏地)"修复"更改:

namespace old
{
  typedef _new::nested::SomeClass SomeClass;
}
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法进口一切_new::nested进入old,而不必typedef明确地定义每一种类型?

与Python类似的东西import * from ....

谢谢.

c++ alias namespaces

26
推荐指数
2
解决办法
2万
查看次数

有没有办法用#define替换长命名空间?

假设我有一个非常长的命名空间,我不想一直输入.但我也不想使用它们using namespace ....我可以使用#define吗?

例:

#define glm::quat glm::gtc::quaternion

class Camera
{
protected:
    glm::quat m_mRotation;
};
Run Code Online (Sandbox Code Playgroud)

我不想使用这个,因为glm :: part也会消失.所以我想保留glm部分,但不是完全长的gtc :: quaternion部分.当我现在尝试这个时,我收到以下错误:

错误1错误C2008:':':宏定义中出现意外

c++ macros namespaces

3
推荐指数
1
解决办法
942
查看次数

标签 统计

c++ ×2

namespaces ×2

alias ×1

macros ×1