可变参数模板、参数包及其在参数列表中讨论的歧义

2023-11-25

在这个问题中,我将参考我之前的问题.

在该问题中,我发现以下内容无效:

template<typename T, typename... A, typename S>
class C { };

这是因为:

对于类模板来说,[这不是有效的代码],因为必须始终指定它们的参数,这总是会导致歧义,除非参数包位于末尾并吞掉任何剩余的模板参数。

这当然有道理,我明白了。

然后,作为一种替代方法,提出了以下涉及专业化的方法:

template<typename F, typename S>
class C;

template<typename T, typename... A, typename S>
class C<T(A...), S> { };

事实上,它似乎有效,所以感谢提出它的人。

无论如何,我不明白的是为什么这是有效的代码而前一个不是。
它是否应该遭受与先前解决方案相同的模糊性?在这种情况下,编译器为什么以及如何解决这种歧义?
根据上一个问题(请参阅本问题开头的链接),在我看来,可变参数部分仍然应该将所有参数吸收到最后,因此该代码也不应该有效。
当然,我错了,但是我的推理究竟出了什么问题呢?


在类模板中,预期模板参数列表C<a,b,c,d,e,f>需要匹配

template<typename T, typename... A, typename S>

其中...A 只是浮动在参数列表中。

但在特化中,需要匹配的不是模板变量的列表,而是模式:

C<T(A...), S>

这很容易,因为A...被定界。

因此,在模板专业化中,参数列表只是符号、一些标量和一些参数包的清单,它们将以模式的形式出现。

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

可变参数模板、参数包及其在参数列表中讨论的歧义 的相关文章

  • 使用sqlbulkcopy之前如何创建表

    我有一个 DBF 文件 我正在尝试导入该文件 然后将其写入 SQL 表 我遇到的问题是 如果我使用 SqlBulkCopy 它需要我提前创建表 但在我的场景中这是不可能的 因为 dbf 文件不断变化 到目前为止 这是我的代码 public
  • 如何向WebRequest添加参数?

    我需要从 Web 服务调用一个方法 所以我编写了以下代码 private string urlPath http xxx xxx xxx manager string request urlPath index php org get or
  • C# 中直接从 URL 获取图像尺寸

    我正在尝试使用以下代码直接从网络上获取图片的尺寸 string image http www hephaestusproject com csharp3 png byte imageData new WebClient DownloadDa
  • C++ 中的“int”默认是“signed long int”吗?

    Is int默认情况下signed long int in C 它是否依赖于平台和 或编译器 如果是这样 怎么办 EDIT 以下任何一项是否保证是重复的 signed short int signed int signed long int
  • 如何使用最小起订量模拟私有只读 IList 属性

    我试图嘲笑这个列表 private readonly IList
  • 无需登录即可在 Intranet 上获取 Web 应用程序的域\用户名

    我的 Intranet 上有一个 Web 应用程序 VS 2005 有几个页面不需要用户登录应用程序 反馈和默认页面 我正在尝试获取要显示和 或发送反馈的域名和用户名 有没有一种方法可以在不需要用户登录的情况下执行此操作 我试过了this
  • C++0x 初始值设定项列表示例

    我想看看这个现有代码示例如何利用 C 0x 初始化列表功能 示例0 include
  • 如何在 ASP.NET Core 6.0 Web API 项目中启用 cors?

    在我的 ASP NET Core 6 0 Web API 项目中配置了 CORS 但预检请求收到 http 405 错误 换句话说 不允许使用 HTTP OPTION 看起来 cors 没有启用 我见过的例子config EnableCor
  • 打开位置设置页面或提示用户启用位置

    我一直在绞尽脑汁 徒劳地谷歌搜索 我正在尝试找到一种方法来提示用户通过直接进入设置页面或仅点击屏幕上的 是 来切换位置 我见过的所有代码似乎都不起作用 有人有有效的方法吗 一个详细的例子将不胜感激 谢谢 我对 Xamarin 开发非常陌生
  • 多线程 - 比单线程慢

    当我使用多个线程而不是单线程运行程序时 它会变慢 不是应该更快吗 该程序应该遍历从起始目录开始的所有目录 并查找并打印所有名为 X 的文件 代码如下 while done pthread mutex lock lock if list is
  • += 运算符在 C++ 中是如何实现的?

    这是我一直在思考的一个问题 但从未找到任何资源来说明这个问题的答案 事实上它不仅是为了 也适用于它的兄弟姐妹 即 等等 当然不是 考虑这个例子 int a 5 a 4 this will make a 9 现在考虑等效表达式 a a 4 T
  • 根据 Active Directory 策略检查密码[重复]

    这个问题在这里已经有答案了 我有一个允许用户更改其 AD 密码的前端 有没有办法获取特定用户及其属性 长度 复杂性 的密码策略 例如细粒度 有没有办法根据此特定策略检查字符串 xyz121 编辑 我不想检查活动目录中存储的当前密码 我想检查
  • C# 反序列化过程中创建指向父对象的指针

    我有这样的课程 Serializable public class child public Parent parent Serializable public class Parent public List
  • 文件加密与解密问题

    我一直在尝试在 VC Express 2010 中加密和解密文件 我见过的所有教程和文档都需要两个FileStreams 来加密文件 一个用于读取未加密的版本 另一个用于加密 当我实际编写代码时 它不断抛出错误 告诉我它无法打开该文件 因为
  • 在 Windows 上使用 C/C++ 开发时省略 msvcr100.dll?

    是否可以在 Windows 上使用 C C 进行开发而不链接到 msvcr100 dll 我知道这是 Windows 的标准 c 库 但我想知道如果我没有安装 Visual Studio 或 Redistributable 软件包 我的计算
  • 如果项目包含多个文件夹,如何使用 Add-Migration

    我想Add Migration使用我的 DbContext 但出现错误 The term add migration is not recognized as the name of a cmdlet function script fil
  • List 或其他类型上的 string.Join

    我想将整数数组或列表转换为逗号分隔的字符串 如下所示 string myFunction List
  • 使用方法的状态模式

    我正在尝试使用方法作为状态而不是类来基于状态模式的修改版本来实现一个简单的状态机 如下所示 private Action
  • C# 和断点 - 这里有魔术师吗?

    我有这个 public static void ByLinkText string text for var i 0 i lt 50 i try Setup Driver FindElement By LinkText text Click
  • 是否可以检测流是否已被客户端关闭?

    简要介绍一下情况 我有一项服务可以通过套接字接收信息并发送回复 连接不安全 我想设置另一个可以为这些连接提供 TLS 的服务 这个新服务将提供单个端口并根据提供的客户端证书分发连接 我不想使用 stunnel 有几个原因 其中之一是每个接收

随机推荐

  • Bootstrap 中 nav 与 div.navbar 的区别

    Bootstrap的一些例子 use div navbar保持导航栏 以及其他示例 例如 在组件文档页面 use nav navbar 这两种方法有什么区别 是否有使用其中一种而不是另一种的指南 两者都会输出相同的设计 但使用nav标签在方
  • CGAffine变换并缩放到图像中心

    我开始使用 Objective C 学习适合绝对初学者的 iPhone 和 iPad 应用程序 作者 Rory Lewis书 但我被困在第五章了 我想做一个缩小图像的按钮 我的问题是 在我编写完所有代码后 图像缩小到 UIImageView
  • 是否有任何跨浏览器 JavaScript 可以使 vh 和 vw 单位工作

    注意 好的 当我输入这个问题时 我遇到了this建议使用的问题 media query但又被问到 2011年 如你所知 CSS3 引入了新的视口百分比长度单位 vh and vw 我觉得这对于可靠的响应式布局非常有用 所以我的问题是 是否有
  • 如何隐藏 JScrollBar 中的箭头按钮

    我需要隐藏箭头按钮java awt Scrollbar VERTICAL 在 AWT 应用程序中 有谁知道如何实现这一点 我看到一个例子here 但代码只是隐藏了按钮 按钮的空白空间仍然存在 它没有被滚动条占据 更准确地说 这是我应该实现的
  • 从 Windows 窗体打开 URL

    我正在尝试从 Windows 窗体提供指向我公司网站的链接 我希望表现良好并使用用户首选的浏览器启动 从 Windows 窗体应用程序在用户的默认浏览器中打开 URL 的最佳方法是什么 ProcessStartInfo sInfo new
  • 将 jar 添加到类路径、Eclipse、Android

    目前 我转到属性 gt 构建路径 gt 库 gt 然后将外部jar添加到我的类路径中 我知道这是正确的方法 至少对于java来说是这样 然而 问题是我在 Android SDK 2 1 上运行它 当我运行该程序时 我认为 android 模
  • 如何管理 Visual Studio Team Services (TFS) 的需求(规范)?

    我正在使用本地 TFS 并计划迁移到 Visual Studio Team Services 但我仍然有一个问题 如何在 VSTS 或 TFS 中正确管理 存储 编辑 跟踪 软件项目的需求 规范 最好的解决方案是什么 你用什么 现在我们使用
  • gcp - 在数据库插入时触发云功能?

    不知道如何搜索这个 我正在寻找一种在 Cloud SQL 中的数据库中插入新行时触发 Cloud Function 的方法 搜索 google云功能事件 或 触发器 会出现Firebase结果 这不是我想要的 有一系列的云功能可以接收数据并
  • Gson不解析类变量

    我正在使用 Gson 并且我有一个对象 它的字段之一是类 class A private Class aClass 当我使用默认的 Gson 对象将实例解析为 Json 时 aClass 为空 知道为什么吗 您需要自定义类型适配器 这是示例
  • 点击空白处的事件如何处理?

    我想在列表视图左键单击空白区域时捕获事件 即单击列表视图控件中的任何项目 我在列表视图的事件列表中进行搜索 但没有找到 我怎样才能做到这一点 请帮忙 编辑 如果我能捕获此事件 我想要做什么 取消选择列表视图中的所有项目 如果将处理程序附加到
  • 在 div 内将 2 个跨度一个左对齐,另一个右对齐

    有人可以编写 CSS 片段来做到这一点吗 div class container span class left Left span span class right Right span div 这是CSS container conta
  • django 模板中的模/模等效运算符/函数?

    我正在学习 django 的模板系统并尝试做一些相对琐碎的事情 h2 State h2 ul class states for state in states li class state elements a href state nam
  • 如何在 Rails 中使用 GROUP_CONCAT?

    我有以下查询 我想将其与 ActiveRecord 一起使用 以便可以将其转换为生产服务器上基于本机 ORACLE 的查询 现在我正在使用 SQLITe select c name co code GROUP CONCAT c name A
  • 如何调用同名字符变量的对象

    我正在尝试在 R 中编写一个函数 以类似的方式批量分析多个文件 这些文件属于类ExpressionSetIllumina 我可以使用目录中所有文件的名称创建一个字符 字符串 向量并加载每个文件 list list files for i i
  • 使用 boost::asio 配置 TCP keep_alive [重复]

    这个问题在这里已经有答案了 Linux和Windows都支持TCPkeep alive数据包 它们可以被激活和配置 取决于系统 setsockopt调用 参见例如本文对于Linux的情况 使用时boost asio似乎支持保持活动消息 请参
  • 开发模式下资产编译速度慢

    我有一个大型 Rails 应用程序 其中包含数百个咖啡脚本文件 有时 当我在咖啡脚本文件中进行微小更改或切换分支时 整个资产正在预编译 我必须等待很长时间才能加载页面 Started GET assets application js fo
  • 如何在Android中将exif数据写入图像?

    我正在尝试写一个User Comment and TAG GPS使用 exif 界面在 Android 应用程序中捕获图像 但由于某种原因 当我在图库中查看图像的详细信息时 标签似乎没有附加到图像中 看来标签可能没有被写入捕获的图像 因为文
  • Android 设备选择器 - 我的设备似乎处于离线状态

    我开发了一个应用程序 并计划将其部署到我的 HTC Desire 上 我已经安装了USB驱动 我在手机上打开了USB调试 并选择仅在手机插入时充电 当我运行应用程序 Android 设备选择器时 显示我的设备处于离线状态 我被困在这一点上
  • PEP 424 __length_hint__() - 有没有办法对生成器或 zip 执行相同的操作?

    刚刚遇到这个很棒的 length hint PEP 424 中的迭代器方法 https www python org dev peps pep 0424 哇 一种在不耗尽迭代器的情况下获取迭代器长度的方法 我的问题 有没有简单的解释一下这个
  • 可变参数模板、参数包及其在参数列表中讨论的歧义

    在这个问题中 我将参考我之前的问题 在该问题中 我发现以下内容无效 template