当前位置: 首页 > 知识库问答 >
问题:

C中最专业的类到底意味着什么?[副本]

闾丘淇
2023-03-14

假设我们有以下内容:

template<typename T1, typename T2>
class A {}

template<typename T1, typename T2>
class A<T1*, T2*> {}

template<typename T>
class A<T, T> {}

现在,我知道我们需要选择最专业的类

共有1个答案

黄景胜
2023-03-14

首先,关于术语:这些定义中的每一个都不是类的定义。第一个定义定义了一个主类模板。其他定义定义了该主模板的部分专门化。

不可能按专业化的“级别”对部分专业化进行分类。实际规则相当复杂,可以在此处找到参考。

但大致上,如果后者接受前者接受的所有模板参数列表,而不是相反,则可以认为部分专门化比另一个更专业化。

在您的情况下,第一个专业化接受A

主模板也不比部分专业化更专业化,因此A

 类似资料:
  • 问题内容: 我对gulp比较陌生,我想知道gulp任务到底是做什么的?我已经搜集到它通常在a 和after之后运行,但是它还必须更多。我一直无法在网上或gulp的文档中找到任何东西,我真的很想了解我在使用什么。 编辑我发现了这个,但是在解释它方面做得很差 问题答案: 从Node文档中: https://nodejs.org/api/stream.html#stream_visible_pipe_d

  • 例如: 如何与类的正常继承相反地使用它呢?我不能像在或int等文件中存储字符串一样,通常使用类似的东西,那么该如何使用呢?

  • 问题内容: 我从一些文档中了解到,Hotspot VM使用称为Oop Maps的数据结构来管理VM中的所有OOP。我的问题是,此Oop Map数据结构何时生成?在编译时还是在运行时?对此,任何进一步的详细文件将受到欢迎。感谢你们。 问题答案: OopMap是一种结构,它记录对象引用(OOP)在Java堆栈上的位置。其主要目的是在Java堆栈中查找GC根目录,并在堆中移动对象时更新引用。 OopMa

  • 对于下面的代码,我为一个对象< code>obj提供< code>isShiny,它被列为属性的一部分,本质上是一个键-值对,其中键是< code>isShiny,值是匿名函数。 但是,当我为函数 提供 时,幕后到底发生了什么?当我打印出一个函数时,没有提示在哪里。 这是来自的输出。

  • 问题内容: 我有这个时间戳值由Web服务返回 我知道这意味着时区,但是那到底是什么意思呢? 而且我正在尝试模拟此Web服务,因此有没有办法在python中使用生成此时间戳的方法? 很抱歉,如果这很明显,但Google的帮助不是很大,参考页面也没有。 我目前正在使用这个: 问题答案: 在并没有真正纳入什么。这仅仅是 分隔 的ISO 8601相结合的日期时间格式 要求。您可以将其阅读为 Time 的缩

  • 我想创建一个