类型Scalar在文件type.h中的任何命名空间之外声明:

typedef float Scalar;


我想在hello.h文件的名称空间Hello中重新声明此类型:

namespace Hello
{
     // definition of a type Hello::Scalar
     // that refers to the Scalar in type.h
}


这样,在名称空间Hello中的任何地方,类型Hello::Scalar均指hello.h中声明的那个,后者指的是type.h(即Scalar)中声明的float

如何实现是通过确保:


第一个Scalar不在任何命名空间中
ScalarHello::Scalar具有相同的“名称”“标量”


我尝试了一些typedef或使用没有任何结果的关键字...

最佳答案

namespace Hello {

    typedef ::Scalar Scalar;
}


应该可以。

关于c++ - 在C++中的 namespace 内重新声明全局类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42450691/

10-10 22:35