【问题标题】:Re-declare a global type inside a namespace in C++在 C++ 中的命名空间内重新声明全局类型
【发布时间】:2017-02-25 00:58:34
【问题描述】:

类型 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.hScalar /strong>(即float)。

如何实现是通过确保:

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

我尝试了一些 typedefusing 关键字,但没有任何结果...

【问题讨论】:

    标签: c++ namespaces typedef


    【解决方案1】:
    namespace Hello {
    
        typedef ::Scalar Scalar;
    }
    

    应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 2018-07-24
      • 2017-05-31
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      相关资源
      最近更新 更多