专门化主模板时,更专门化意味着什么?

2023-12-31

C++ 模板特化规则中提到的特化必须比主模板更加特化。下面的 #1 代码片段会导致编译错误,这表明第二行并不更专业,但最后一个片段 (#2) 的工作看起来非常接近 #1。两个代码片段都是专门的int N as 0,那么为什么第一个片段被抱怨为“不更专业”呢?

// #1
template<int N, typename T1, typename... Ts> struct B;
template<typename... Ts> struct B<0, Ts...> { }; // Error: not more specialized
// #2
template<int N, typename T1, typename... Ts> struct B;
template<typename T, typename... Ts> struct B<0, T, Ts...> { }; // this works

For 更专业 https://en.cppreference.com/w/cpp/language/partial_specialization#Partial_ordering:

非正式地,“A 比 B 更专业”意味着“A 接受 B 接受的类型的子集”。

无论专业化可以接受什么类型,都应该是主模板可以接受的类型的子集。但对于B<0>,它只能被专业化接受,而主模板则不能,因为模板参数T1是必不可少的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

专门化主模板时,更专门化意味着什么? 的相关文章

  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 节点 http 服务器每秒可以处理多少个请求而不需要对任何请求进行排队?

    有谁知道节点 http 服务器的基本单个实例每秒可以处理多少个请求 而无需排队任何请求 实际上 我需要编写一个nodejs应用程序 它应该能够在100毫秒内一致响应大约数千个传入请求 我正在尝试在 4 个 cpus 服务器中测试它并在集群模
  • 如何找到浏览器的代理设置?

    我正在为 Windows 编写一个命令行工具 它使用 libcurl 从互联网下载文件 显然 当用户位于代理服务器后面时 下载不起作用 因为需要配置代理 然而 我希望我的工具尽可能简单 并且不必给用户带来配置代理的负担 我的工具甚至没有配置
  • SELECT 类型查询是唯一可以嵌套的类型吗?

    是否可以将非选择查询 更新 插入 删除 嵌入到另一个查询中 类似于 选择内的插入 A single query select such and such from where insert into 基本答案 有CTEs 通用表表达式 ht
  • 如何从“workflow.Context”获取“context.Context”?

    我正在实现一个 Cadence 工作流程 需要使用以下命令调用函数context Context参数 我该如何获得context Context来自workflow Context 难道这只是一个问题ctx context Context
  • Unity HoloLens 应用程序作为 Windows 应用程序而不是 AR 执行

    我正在使用以下工具构建 HoloLens Unity 应用程序 统一 2018 3 14f1 视觉工作室 2017 Microsoft MixedReality Toolkit Unity Foundation v2 0 0 RC1 Ref
  • 动态表单上的 MVC 模型验证?

    我有以下模型 public class FileModel public int Id get set Required ErrorMessage Required StringLength 100 ErrorMessage Max is
  • 在 Android 中添加自定义字体到主题

    有没有办法在 Android 的主题中添加自定义字体 我读过了快速提示 自定义 Android 字体 http mobile tutsplus com tutorials android customize android fonts 但这
  • Uint8Array 到 ArrayBuffer

    所以我有一个 ArrayBuffer 它是我用新的 HTML5 文件阅读器作为 ArrayBuffer 读取的文件的文件内容 并且我可以通过执行以下操作将 ArrayBuffer 转换为 Uint8Array ab established
  • MVC Core2 中的 Ajax 调用错误请求

    我正在将一个网站折射到 MVC Core 2 对于我的大多数 Ajax 调用 我一直使用 Get 速记 没有任何问题 我有一个 AJAX 调用需要使用 ajax 并且由于某种原因我不断收到错误的请求错误 请记住 此代码当前正在 aspx 网
  • 如何更改列表视图文本颜色

    在我的应用程序中 我想更改列表视图文本颜色 在本例中 我使用 XML 文件进行列表视图 是否可以 如果是 请举例说明 性别 xml
  • C 中变量名后的冒号[重复]

    这个问题在这里已经有答案了 可能的重复 结构体声明中的冒号是什么意思 例如 1 7 16 或 32 https stackoverflow com questions 1604968 what does a colon in a struc
  • 如何在 Kotlin Flow 中过滤列表

    我正在使用替换当前的实现RxJava to Coroutines and Flow 我在使用一些时遇到一些问题Flow运营商 我正在尝试过滤 a 中的项目列表Flow在提供收集之前 Flow
  • Passport.authenticate() 使用 Promise 而不是自定义回调

    passport authenticate 我如何定义一个Promise而不是使用定制球背 如何使用passport authenticate 在这里引用 http www passportjs org docs authenticate
  • 如何使用变量名称将命名元素添加到 R 向量

    我想向向量 V 添加一个元素 例如 100 并使用变量 x 的值作为新元素的名称 我知道可以这样做 V c V 100 names V length V x 但我正在寻找一种简单的单行解决方案 如果有的话 我试过 V c V as name
  • 使用 C++ 中的 PCL 在同一窗口中查看多个点云

    我有两个点云 我想在同一个窗口中对其进行可视化 include
  • TFS 2010 通过文件系统构建发布

    我在 TFS 中有一个相当大的 MVC2 项目 它在签入时自动构建 持续集成 目前 完整构建的版本已转储到我们的开发 IIS 服务器上的网络共享上 Server wwwrootLatest TFS 当然会创建很多子文件夹 因为它只是进行构建
  • 类内递归

    我试图在类语句中放置一个递归公式 class SomeNode def init self a leng len a half leng 2 self firstnode a 0 0 self child1 SomeNode a i for
  • 从外部连接到在 docker 容器内运行的服务

    我有一个服务在 docker 容器 本地机器 中运行 我可以在 Ambari 服务配置中看到服务 URL 现在我想使用本地开发环境连接到该服务 我发现我可以连接到容器内的该 URL 但是当我在本地外部使用该 URL 时 连接被拒绝 Caus
  • 为什么 vector 不是 STL 容器?

    Scott Meyers 的书第 18 条有效的 STL 改进标准模板库使用的 50 种具体方法说要避免vector
  • 专门化主模板时,更专门化意味着什么?

    C 模板特化规则中提到的特化必须比主模板更加特化 下面的 1 代码片段会导致编译错误 这表明第二行并不更专业 但最后一个片段 2 的工作看起来非常接近 1 两个代码片段都是专门的int N as 0 那么为什么第一个片段被抱怨为 不更专业