在C 中重新解析命名空间内的全局类型

Re-declare a global type inside a namespace in C++

本文关键字:全局 类型 命名空间 新解析      更新时间:2023-10-16

从文件 type.h 中的任何名称空间中声明类型Scalar

typedef float Scalar;

我想在文件中的名称空间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;
}

应该做技巧。