gpt4 book ai didi

c++ - 如何访问未命名命名空间中的隐藏模板?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:32 25 4
gpt4 key购买 nike

这里有一个棘手的情况,我想知道有什么方法可以解决它

namespace {
template <class T>
struct Template { /* ... */ };
}

typedef Template<int> Template;

可悲的是,Template typedef 干扰了 Template未命名命名空间中的模板。当你尝试做 Template<float>在全局范围内,编译器会在模板名称和 typedef 名称之间引发歧义错误。

您无法控制模板名称或类型定义名称。现在我想知道是否可以:

  • 创建类型定义类型的对象 Template (即 Template<int> )在全局命名空间中。
  • 创建一个 Template<float> 类型的对象在全局命名空间中。

不允许向未命名的命名空间添加任何内容。一切都应该在全局命名空间中完成。

这是出于好奇,因为我想知道有什么技巧可以解决这种歧义。这不是我在日常编程中遇到的实际问题。

最佳答案

我知道这有点破坏了你的观点,但我真的认为主要的技巧是避免像瘟疫这样的事情发生。

关于c++ - 如何访问未命名命名空间中的隐藏模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2932660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com