C++ 部分模板专门化语法

2023-12-07

对于主模板:

template<typename A, typename B> class MyClass {...

与模板专门化有什么区别

template<typename A, typename B> class MyClass<int, float> {...

and

template<> class MyClass<int, float> {...

template<typename A, typename B> class MyClass<int, float> {...不应该允许。事实上,如果您指定形式参数A and B,您的模板应该使用它们。

第二种情况很正常:你说你正在进行专业化,没有“自由”参数。

中间情况可能是

template<typename A> class MyClass<A, float> {...

这又是有效的:这里您只修复第二个模板参数。

部分特化的思想如下:创建一个带有一些形式参数的模板,并使用它们来表达对初始模板参数的约束。部分特化的参数不需要与初始模板参数相同。例子:

template<typename X, typename Y, typename Z> class MyClass<X*, Y(Z&)> {...

对于您的情况来说,这将是一个有效的部分专业化。这可以理解为“对于任意类型X, Y and Z, if MyClass的模板参数匹配X* and Y(Z&),使用这个专门化”。编译器应该非常聪明才能匹配类型模式。

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

C++ 部分模板专门化语法 的相关文章

随机推荐

  • VSCode 在片段中链接正则表达式转换

    我正在尝试通过两种方式在 VSCode 中自动转换文件名 假设我有test file name md 我想结束Test File Name在我的文档中 现在我可以分别完成转换的两个部分 但我正在努力寻找如何将它们组合起来 要删除所有 并将它
  • 当类型是映射的任何成员时提高 Typescript 速度?

    例如 我有这些类型 class User extends Entity class Post extends Entity type Entities user User post Post potentially hundreds mor
  • 如何将数据文件作为矩阵导入并从 python 脚本运行 .m 文件?

    我有一个 m 文件 用于在 matlab 中运行神经网络 该文件已本地安装在我的计算机上 我正在尝试编写一个 python 脚本 它将多次循环遍历神经网络可能的传输和训练 函数列表 我编写了一个函数来打开和编辑 m 文件 但我不知道如何操作
  • 从 .NET Windows 服务调用 COM 组件

    我有一个用 NET C 编写的 Windows 服务 它调用 COM 组件 我还有一个 NET Windows 窗体测试应用程序 用于测试 COM 组件 从测试应用程序来看它运行良好 但是 当我在 Windows 服务中使用相同的代码时 什
  • 检测 Bash“导出”值的失败

    在 Bash 中 我执行命令并将结果放入变量中 如下所示 export var svn ls 但是 如果 SVN 由于某种原因失败 例如它返回非零错误代码 则导出仍会返回状态代码 0 如何检测执行的命令是否失败 var svn ls if
  • 在 Ruby 中使用多个进程

    Ruby 是否有一个模块可以轻松地在多个进程之间共享对象 我正在寻找类似于Python的东西多重处理 它支持可以在进程之间共享的进程安全队列和管道 我认为您可以使用 Ruby IO 的功能做很多您想做的事情 你在进程之间共享 而不是线程之间
  • 在进行 Web 自动化时,如何使用空手道 DSL 与 Chrome 中的网络选项卡进行交互

    我正在使用空手道 DSL 编写 UI 自动化脚本 在这一点上 我需要从 Chrome 中的网络调用中获取价值 我想与 chrome devtools 网络选项卡中的 Web 服务调用之一进行交互 并获取该 Web 服务的 json 响应 我
  • 在 C# 中使用 P/Invoke 注册 _set_purecall_handler 函数

    我使用时遇到问题 set purecall handler使用 C 中的 P Invoke 基本上 这有效 C set purecall handler MyPureCallHandler void MyPureCallHandler vo
  • 输入被禁用,直到先前的输入被填充

    我想做的是 当用户登陆表单时 我希望第一个输入处于活动状态 以便用户能够单击 选择或填写它 我希望他们逐步填写表格 因此我希望只有在他们填写完当前输入后才激活下一个输入 我还希望禁用提交按钮 并且在填写所有输入之前不要激活提交按钮 实现这一
  • WPF 对齐容器中的项目

    所以我有这个简单的xaml
  • System.Double[*] 是什么意思

    这个 gem 是在我们反编译的一些互操作代码中创建的 我们不知道如何创建这个数组的实例 也不知道它是什么类型的数组 看着Type GetElementType告诉我它是一个类型数组Double 但我们无法弄清楚它与System Double
  • 限制对我网站上图像的访问,除非通过我自己的 html

    在我的网站上 我以简单的方式存储用户图片 例如 图像 user 1 jpg 我不希望访问者仅通过尝试 user ids 就能够查看我的服务器上的图像 例如 www mydomain com images user 2 jpg www myd
  • 如何序列化 JavaScript 关联数组?

    我需要序列化一个关联的 JavaScript 数组 这是产品和数值的简单形式 但在构建数组后似乎是空的 代码在这里 http jsbin com usupi6 4 edit 一般来说 不要将 JS 数组用于 关联数组 使用普通对象 var
  • 意外字符“@”您可能需要适当的加载程序来处理此文件类型

    这是我尝试运行 webpack 时得到的结果 我得到的错误是 v3 app styles main scss 中出现错误 模块解析失败 Users vovina widget login react v3 app styles main s
  • Torrent 客户端中的哈希计算

    我想知道是否有人知道 BitTorrent 客户端中的 哈希 指的是什么 它显然不是hash文件的代码 但有些不同 我认为这更像是一个文件的磁力链 接 但是它是如何连接到文件本身的呢 我只是想了解幕后的构造 torrent 客户端中的文件
  • 在 C++ (MFC) 资源文件中连接字符串和常量

    我有一个带有 MFC 的 C 项目和一个资源文件 在我的 关于 对话框中 我想添加一个包含程序版本的常量 IDD ABOUTBOX DIALOG DISCARDABLE 34 22 237 65 STYLE DS MODALFRAME WS
  • REACT REDUX:更新深层嵌套对象中的值

    我正在尝试更新存储在深层嵌套对象中的值 它包含许多信息并且模式是固定的 我正在尝试复制对象 然后从输入返回具有更新值 onChange 的对象 但是 我无法成功正确复制完整树并返回更新的内容 DEMO https codesandbox i
  • 按组将重复值替换为 NA

    我有一个像这样的数据框 subject lt c 1 1 1 1 1 2 2 2 2 3 3 3 4 4 4 4 5 5 day lt c 20 20 20 20 20 40 40 40 40 50 50 50 40 40 40 40 20
  • 如何使用 open CV 在 python 中计算 3D 直方图

    我想用 python 计算 Cielab 图像的 3D 直方图 我正在使用 openCV 来计算我的直方图 我想使用比较图像compareHistopenCV 的函数 这就是为什么我使用 openCV 来计算图像的 3D 直方图 我尝试使用
  • C++ 部分模板专门化语法

    对于主模板 template