模板类特化的模板方法

2023-11-25

这是我的代码:

template<typename T1, typename T2> class MyClass
{
public:
    template<int num> static int DoSomething();
};

template<typename T1, typename T2> template<int num> int MyClass<T1, T2>::DoSomething()
{
    cout << "This is the common method" << endl;
    cout << "sizeof(T1) = " << sizeof(T1) << endl;
    cout << "sizeof(T2) = " << sizeof(T2) << endl;
    return num;
}

效果很好。但是当我尝试添加这个时

template<typename T1, typename T2> template<> int MyClass<T1, T2>::DoSomething<0>()
{
    cout << "This is ZERO!!!" << endl;
    cout << "sizeof(T1) = " << sizeof(T1) << endl;
    cout << "sizeof(T2) = " << sizeof(T2) << endl;
    return num;
}

我收到编译器错误: «>» 标记之前的显式专业化无效 «int MyClass::DoSomething()» 的模板 ID «DoSomething» 与任何模板声明不匹配

我使用 g++ 4.6.1 我应该怎么办?


不幸的是,如果不专门化外部模板,则无法专门化属于类模板成员的模板:

C++11 14.7.3/16:在类模板的成员或出现在命名空间范围中的成员模板的显式专业化声明中,成员模板及其某些封闭类模板可能保持非专业化,但如果类成员模板的封闭类模板也未显式特化,则声明不应显式特化该类成员模板.

我认为你最好的选择是将额外的参数添加到MyClass,然后部分专门化它。

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

模板类特化的模板方法 的相关文章

  • 全局变量不好

    好吧 读完这篇文章和一些示例后 我仍然不清楚全局变量的含义 那么你的类中的私有变量是全局的吗 http www c2 com cgi wiki GlobalVariablesAreBad http www c2 com cgi wiki G
  • 以编程方式更新 Wifi 网络

    我正在尝试创建一个程序 当某个 wifi 网络在范围内时 该程序会连接到该网络 即使已经连接到另一个 wifi 也是如此 我在用着简单Wifi https github com DigiExam simplewifi 基本上效果很好 除了在
  • MVC BaseController 处理 CRUD 操作

    我想重构我的基本 CRUD 操作 因为它们非常重复 但我不确定最好的方法 我的所有控制器都继承 BaseController 如下所示 public class BaseController
  • 使用c#在mac上启动外部进程

    我成功地使用 System Diagnostics Process Start 在 Windows 上启动我的外部单声道可执行文件 然而在mac上却失败了 我没有收到任何错误 只是什么也没发生 我尝试按以下方式进行操作 System Dia
  • R 包与 Rcpp 的链接错误:“未定义符号:LAPACKE_dgels”

    我正在创建一个 R 包 lapacker 以使用 R API 头文件 R ext Lapack h 为 R 提供和使用的内部 LAPACK 库 仅具有双精度和双复数 提供 C 接口 源代码 https github com ypan1988
  • 我应该使用字节还是int?

    我记得曾在某处读到 即使您只需要字节 使用 Int32 更好 就性能而言 它 据说 仅适用于您不关心存储的情况 这是有效的吗 例如 我需要一个保存一周中某一天的变量 我是吗 int dayOfWeek or byte dayOfWeek E
  • 如何为二进制格式化程序创建 SerializationBinder,以处理类型从一个程序集和命名空间到另一个程序集和命名空间的移动

    上下文如下 我想通过将代码移动到不同的项目来重构代码 其中一些代码包含可序列化的 DTO 用于 跨多个端点发送和接收数据 如果我移动代码 序列化就会中断 因此它不是 向后兼容我的应用程序的旧版本 这个问题的一个解决方案是 Serializa
  • 将两个垂直滚动条相互绑定

    我在控件中有两个 TextBox 并且它们都有两个 VerticalScrollBar 我想在它们之间绑定 VerticalScrollBars 如果一个向上 第二个也会向上等等 如果可以的话我该怎么做 Thanks 不是真正的绑定 但它有
  • 我想找到 C# 代码中所有后面没有括号的 if 语句。通过正则表达式

    我想找到所有if声明和for后面没有大括号的语句 当你在一个文件中写入一行时if声明您大多不会将其括在大括号中 所以我想找到所有这些if and for声明 请帮忙 就像我想捕捉这个声明 if childNode Name B return
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • 批量插入,asp.net

    我需要获取与会员相对应的 ID 号列表 在任何给定时间处理的数量可能在 10 到 10 000 之间 我可以毫无问题地收集数据 解析数据并将其加载到 DataTable 或任何内容 C 中 但我想在数据库中执行一些操作 将所有这些数据插入表
  • 如何找到进程启动时使用的原始用户名?

    有一个 perl 脚本需要以 root 身份运行 但我们必须确保运行该脚本的用户最初没有以用户 foo 身份登录 因为它将在脚本运行期间被删除 那么 我如何查明自登录以来可能已多次起诉的用户是否在该链中的任何时间都没有模拟过 foo 我发现
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • 以编程方式阻止 Vista 桌面搜索 (WORDS) 对映射网络驱动器上的 pst 文件建立索引

    经过几天的多次尝试 我没有找到任何 100 的解决方案来解决这个问题 我的搜寻和调查范围 直接访问注册表 HKLM SOFTWARE Microsoft Windows Search CrawlScopeManager Windows Sy
  • 结构大小与 typedef 版本不同?

    我的代码中有以下结构声明和 typedef struct blockHeaderStruct bool allocated unsigned int length typedef struct blockHeaderStruct block
  • C 中的等效 plpgsql 触发器

    我有一个 PostgreSQL 9 0 服务器 并且在某些表上使用继承 因此我必须通过如下触发器模拟外键 CREATE OR REPLACE FUNCTION othertable before update trigger RETURNS
  • 如何正确处置注入的DLL线程?

    我将一个 DLL 注入到目标进程中 以在玩 MMORPG 时充当助手 当前功能将按键转换为鼠标点击 因为 MMORPG 要求用户移动鼠标才能实现某些功能 这是我所鄙视的 假设我出于某种原因想要取消注入 DLL 我该怎么做呢 这个方法干净吗
  • C# 使用 .Equals() 比较两个 double

    我使用 ReShaper 当我用 比较两个双精度值时 它建议我应该使用 Math 具有公差的 ABS 方法 看 https www jetbrains com help resharper 2016 2 CompareOfFloatsByE
  • Web 和 winforms 的 .Net 身份验证

    我有一个为客户端构建的 ASP NET Web 应用程序 它使用默认的 ASP NET 表单身份验证 他们现在请求一个能够 与 Web 应用程序一起工作的桌面 WinForms 应用程序 我已经创建了 Web 服务来访问他们想要从 Web
  • 在派生类中访问基类变量

    class Program static void Main string args baseClass obj new baseClass obj intF 5 obj intS 4 child obj1 new child Consol

随机推荐

  • 是否可以从 Objective-C 文件访问 Swift 全局变量? [复制]

    这个问题在这里已经有答案了 我正在开发一个项目 我必须使用一些 Swift 代码扩展 Objective C 应用程序 所以我需要从 m 文件访问 Swift 代码 我导入了生成的 Swift h 文件 现在我可以访问这些方法 但不能访问全
  • 在 Doctrine 2.x ORM 中使用 REGEXP

    我对此进行了大量研究 我确信答案是否定的 但我很想证明我的观点是错误的 我想执行一个用 DQL 编写的包含 REGEXP 操作的查询 例如 select from assets where campaign id 1 and fileNam
  • 为什么 Property Set 会抛出 StackOverflow 异常?

    我了解 java 并且通常会放入 getter setter 方法 我有兴趣使用以下代码在 C 中执行此操作 但它会引发 StackOverflow 异常 我究竟做错了什么 调用代码 c firstName a 财产代码 public St
  • 当在另一个下拉列表上进行选择时,如何在 Django 管理中过滤下拉列表

    我的 Django 管理站点中有两个下拉列表 例如 我有 SelectCountry 和 SelectRegion 区域与国家 地区具有外键关系 如何确保在选择某个国家 地区时 会根据该国家 地区筛选区域 注意 我也使用 django gr
  • PHP 表单 + Google reCAPTCHA

    有点奇怪的是 谷歌的 recaptcha 文档并不像我想象的那么有用 我被要求采用当前现有的表单 每天都会收到几次垃圾邮件 并使用 Google 新的验证码进行更新 旧验证码的教程有很多 但新验证码的教程却不多 我基本上只是想要一个简单的表
  • 按钮背景资源对比

    button setBackgroundResource R Drawable abc if button getBackground getResources getDrawable R drawable abc button setBa
  • java.lang.Object 的受保护方法如何免受子类的影响?

    关键词protected授予对同一包中的类和子类的访问权限 http java sun com docs books tutorial java javaOO accesscontrol html 现在 每个班级都有java lang Ob
  • 限制闪亮字段中的输入类型

    事实上 numericInput接受字符串和数字输入 如果输入一个字符串 它将被转换为NA 尝试使用下面的代码 有没有办法不允许用户在闪亮的数字字段中键入字符串 ui lt fluidPage numericInput num label
  • C 中的内存池实现

    我正在寻找一个好的 C 内存池实现 它应包括以下内容 抗碎片化 超级快 能够在某个标识符下 捆绑 不同大小的多个分配 并删除具有给定标识符的所有分配 线程安全 我认为优秀的talloc 作为 samba 的一部分开发的可能正是您正在寻找的
  • Node.js 提示符“>”在 eshell 中无法显示

    我想在eshell中运行Node js 但提示不对 那么 我该如何解决这个问题呢 另一种方法是将其添加到您的 emacs 中 setenv NODE NO READLINE 1 这种方法的好处是它也适用于您直接运行的 Node 程序的其他调
  • jQuery detach() vs remove() vs hide() [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我在我的页面中使用高图表
  • -1 到 1 之间的随机数总和为 0 [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 用R 如何生成n随机数x 1 x n位于之间 1 and 1总和为0 推广到另一个总和和另一个范围怎么样 简单解决第一个问题 这是第一个问题的简单解决方案 模拟u 1 u n之间 1
  • Asp.Net MVC Core 启用双重转义

    我正在开发一个 asp net mvc 核心应用程序并尝试允许双重转义 我的编辑网址有一个电话号码作为超链接 例如 123 我知道如何使用普通的 ASP NET MVC 应用程序 我曾经将 web config 文件更改为
  • 创建类型的默认实例[重复]

    这个问题在这里已经有答案了 反射等价于 default object null 当我直到运行时才知道类型时 例如 public void Method Type type var instance type CreateDefault no
  • iPhone 使用 GData 框架将视频上传到 YouTube 应用

    我想将视频从我的应用上传到 YouTube 我正在使用 YoutubeTest 示例来实现此目的 我已经为我的应用程序设置了开发人员密钥和客户端 ID 现在 当尝试使用示例源代码上传视频时 它显示一个错误 2012 03 19 10 51
  • nd_pdo_mysql 和 pdo_mysql 扩展之间有什么区别?

    由于某种原因pdo mysql我们的托管服务器上的 PHP 扩展无法运行使用 MySQL 视图的查询 并出现此错误消息 SQLSTATE HY000 一般错误 1615 准备好的语句需要重新准备 有一个讨论Bug 42041 当 MySQL
  • app.UseErrorHandler() 可以访问错误详细信息吗?

    在我的 MVC4 应用程序中 我覆盖了 global asax csApplication Error object sender EventArgs e 我可以在哪里提取exception statusCode and requested
  • gcloud docker Push 403 禁止

    我正在尝试将 docker 映像推送到 eu gcr io 但收到 403 Forbidden gcloud docker push eu gcr io
  • Schema.org 中网页结构的隐含性

    在阅读了数千篇帖子 问题 博客文章和意见之后 我仍然对如何使用微数据标记网页感到有点困惑 如果微数据的主要目的是帮助搜索引擎更好地理解网页的内容 并且隐式假设网页 那么在 body 元素中从 itemtype Webpage 开始 然后继续
  • 模板类特化的模板方法

    这是我的代码 template