模板类的模板构造函数的显式模板专业化

2024-02-25

这个问题可能与这个问题重叠:模板类的模板构造函数的 C++ 显式模板特化 https://stackoverflow.com/questions/2563165/c-explicit-template-specialization-of-templated-constructor-of-templated-class。 但是,我没有在该线程中找到解决方案。

我有一个带有模板构造函数的模板类:

template<typename First, typename ... Rest> class var {
    public:
        template<typename T> var(T& t) {
            std::cout << "general" << std::endl;
        }
};

但是,如果该类使用同一类的对象作为参数进行实例化(即,我们想调用复制(或移动)构造函数),则应该执行一些特定操作。所以我尝试了以下方法:

template<typename First, typename ... Rest> template<> 
var<First, Rest...>::var(var<First, Rest...>& v) {
    std::cout << "copy" << std::endl;
}

当尝试用 g++ 4.6 编译它时,我得到 错误:“>”标记之前的显式专业化无效 错误:封闭的类模板没有显式专门化 因之前的错误而感到困惑,摆脱困境

我看到了问题,我必须明确地说出我想专门为哪个类构造函数......

然而,我希望我想做什么已经很清楚了。有什么想法吗?


模板构造函数不是复制构造函数:

template<typename First, typename ... Rest> class var {
    public:
    var() {};
    var(const var& v) {
        std::cout << "copy" << std::endl;
    }
    template<typename T>
    var(const T& t) {
        std::cout << "general" << std::endl;
    }
};

int main()
{
    var<int> i0;
    var<int> i1(i0);
    var<int> i2("Hello");
}

Gives

copy
general

注意:添加了一些常量

您尝试将非复制构造函数专门化为复制构造函数失败。

12.8:

类 X 的非模板构造函数是复制构造函数,如果其 第一个参数的类型为 X&、const X&、易失性 X& 或 const 易失性 X&,或者没有其他参数,或者所有其他参数 参数有默认参数 (8.3.6)。

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

模板类的模板构造函数的显式模板专业化 的相关文章

  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 按扩展名过滤搜索文件返回太多结果

    我正在开发一个 C 控制台应用程序 它必须管理 Windows 操作系统上的文件 我需要获取具有特定扩展名的文件名 列表 我找到了很多解决方案 最建议的是以下一种 HANDLE hFind WIN32 FIND DATA data hFin
  • 现代 C++ 编译器是否能够在某些情况下避免调用 const 函数两次?

    例如 如果我有以下代码 class SomeDataProcessor public bool calc const SomeData d1 const SomeData d2 const private Some non mutable
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 处理右值时的 insert 与 emplace

    std string myString std unordered set
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh

随机推荐

  • Azure Functions - Blob 流动态输入绑定

    我正在 azure 上运行一个 C 函数 它需要从容器中获取文件 唯一的问题是输入文件的路径每次都会 可能 不同 并且输入文件的数量将从 1 到大约 4 或 5 不等 因此 我不能只使用默认的输入 blob 绑定据我所知 我的选择是给予容器
  • 通过Ajax发送FormData + js变量

    我有这个 Ajax 来发送多个图像 btn on click function var formData new FormData form1 0 var path php upload adm prodpictures php ajax
  • 如何转到 Eclipse 中的“下一个出现”

    在 Eclipse 中 您可以打开 标记出现次数 然后它将突出显示当前范围内给定变量的每次出现 那太好了 但我真的很想从一次这样的事件转移到下一次 到目前为止 我已经找到了两个关于如何执行此操作的建议 但都没有奏效 首先有这样的帖子 Ecl
  • 使用 configparser 添加注释

    我可以使用 python 中的 ConfigParser 模块使用 add section 和 set 方法创建 ini 文件 请参阅示例http docs python org library configparser html http
  • 调试 $rootScope:infdig

    这是一个常见问题 已达到 5 次 digest 迭代 流产 观察者在最近 5 次迭代中被解雇 文档 https docs angularjs org error https docs angularjs org error rootScop
  • 自动更新 HTML 画布宽度和高度属性

    我想将 HTML5 画布与 Flexbox 结合使用 当用户调整窗口大小时 我需要自动设置 canvas width 和 canvas height 我尝试使用 jQuery 来实现 cnvs attr width cnvs width c
  • “Google_Exception”,消息为“经过身份验证后无法添加服务”

    我正在使用 Oauth 2 0 开发带有 Google Analytics 的 WP 插件 我所有的身份验证和数据提取都工作正常 除了这个问题 第一次获得新的 Google 授权代码 例如 4 xbSbg 并进行身份验证 然后尝试调用new
  • 我可以在 AngularJS 中要求通用父指令吗

    子指令是否可以在不确切知道父指令是什么的情况下需要父指令 而只是知道它 实现了一个接口 例如
  • 如何多次重用相同的代码 - html/css

    我想为每个按钮重复使用模式两次 按钮代码 function popUp model const pop up model document getElementById model pop up model classList toggle
  • TypeScript 合并通用数组

    我想要一个对象的通用对象数组 但是 它生成联合类型 如何获得一种合并对象类型 喜欢 key string boo string foo string type PluginType
  • 在 C# 中使用 xsi:nil="true" 反序列化 XML 元素

    我正在尝试反序列化 XML 文件XmlSerializer in C 随后的目标类是使用 xsd 实用程序自动生成的 System CodeDom Compiler GeneratedCodeAttribute xsd 4 0 30319
  • 从 OLE 二进制字符串解析 MathType MTEF 数据

    需要将 MS WORD 2003 或更低版本中的 MathType 方程转换为 MathML 以便在网络上很好地呈现 MathType 的内置函数 Publish to MathPage 可以很好地完成这项工作 但我想将方程转换过程集成到我
  • 带有 React 和 Node 的 google 应用引擎:生产设置

    我使用 React js 和 Node js Express 创建一个网站 我使用 Google App Engine 和 Google Datastore 作为数据库 在我的本地机器上一切正常 React 前端能够访问 Node js 提
  • 如何在 Jest 中的 beforeAll / beforeEach 和测试之间共享数据?

    我们使用 jest 来测试我们的 API 并且有相当复杂的场景 我们使用beforeAll函数为每个测试设置通用辅助变量 有时设置租户分离 在其他情况下我们使用beforeEach为测试设置租户分离的函数 并为测试租户提供一些默认配置 例如
  • 如何获得DataFrame的n个最长条目?

    我正在尝试获取 dask DataFrame 的 n 个最长条目 我尝试打电话nlargest https docs dask org en latest dataframe api html dask dataframe DataFram
  • Youtube Data API v3 - 获取自动生成频道的视频源

    我想使用自动生成的频道 ID 如下例所示 GET YOUR API KEY 访问他们的视频内容 但似乎我无法利用part snippet contentDetails or filter uploads 我在获取普通用户的播放列表项之前使用
  • Spring 4推荐替换JpaTemplate

    我有一个遗留项目 它使用 Spring 3 0 x 并利用JpaTemplateSpring提供的实现 然而 升级到 Spring 4 0 x 后我了解到JpaTemplate从 Spring 3 2 开始已弃用 我看到了一些建议 可以简单
  • (Android) 具有多窗格布局的导航抽屉

    我很难为一项活动提供一个良好且可接受的布局a tablet 但我不确定我的设计是否与Google的设计指南兼容 简而言之 我的应用程序接收网络嗅探器日志文件并显示数据不同功能的统计信息 例如 随时间变化的流量 随时间变化的 PM 以时间线
  • 使用 ffmpeg、ffprobe 或 rvideo 在 ruby​​ 脚本中获取视频元数据

    我想使用 Ruby 获取 URL 引用的视频的元数据 此时 我找到了很多相关帖子 但找不到如何解决我的问题 我尝试使用 RVideo 但是当我这样做时 文件 RVideo Inspector new file gt http www agr
  • 模板类的模板构造函数的显式模板专业化

    这个问题可能与这个问题重叠 模板类的模板构造函数的 C 显式模板特化 https stackoverflow com questions 2563165 c explicit template specialization of templ