指定容器类型的迭代器类型的部分特化

2024-01-01

我有一个模板结构,它接受模板参数的迭代器类型。 现在我需要将该类专门用于不同容器的迭代器。 我尝试过 std::vector

template<typename Iterator>
struct AC {

};

template<typename T, typename Alloc>
struct AC<typename std::vector<T, Alloc>::iterator> { //this doesn't work

};

但我得到了这个编译器错误(VS11): 'T' :在部分特化中未使用或可推导的模板参数

有人可以告诉我为什么这不起作用吗?以及如何让它发挥作用?


您无法推断出嵌套的剩余类型::。确实,你的问题毫无意义。考虑这个更简单的反例:

template <typename> struct Foo;
template <> struct Foo<bool> { typedef float type; };
template <> struct Foo<char> { typedef float type; };

template <typename> struct DoesntWork;

template <typename T> struct DoesntWork<typename Foo<T>::type> { };

现在如果我说DoesntWork<float>, 什么应该T be?

关键是没有理由any T应该存在的Foo<T>::type是你想要匹配的东西,即使有,也没有理由说它是独一无二的。

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

指定容器类型的迭代器类型的部分特化 的相关文章

随机推荐

  • 检查函数是否被调用为装饰器

    在下面的最小示例中decorate被调用两次 第一次使用 decorate 第二个通过正常函数调用decorate bar def decorate func print func name return func decorate def
  • 在 NetworkX 中合并两个加权图

    我使用 python 多重处理来创建多个不同的 NetworkX 图 然后使用下面的函数来组合这些图 然而 虽然这个函数对于小图工作得很好 但对于较大的图 它会使用大量内存 并且会挂在我的系统和内存密集型 AWS 系统上 仅使用系统中总内存
  • 交换两列 - awk、sed、python、perl

    我有一个大文件中的数据 280 列宽 700 万行长 我需要交换前两列 我想我可以使用某种 awk for 循环来执行此操作 打印 2 1 然后打印到文件末尾的范围 但我不知道如何执行范围部分 而且我无法打印 2 1 美元 3 美元 280
  • 在 API 加载之前在 Cordova 中显示 webView

    我正在使用 PhoneGap Cordova 构建适用于 iOS 和 Android 的应用程序 按照标准行为 在 JavaScript 初始化并且 Cordova API 准备就绪之前 不会显示 webView 所以直到我打电话 docu
  • jquery 添加类到这个被点击的元素

    我生成几行 tr 与任务 现在 可以通过单击某个任务将每个任务标记为完成span 我通过 ajax 请求来做到这一点 这是 HTML table tr td 1 td td span class icon complete a to hea
  • foreach 循环和 stdclass 对象

    我在这里看到了类似的问题 但我似乎无法将解决方案应用于我的问题 我有一个名为 results 的变量 它是从 API 获得的 我将更改专有名词以保护我工作的客户 stdClass Object out gt stdClass Object
  • Laravel 混合编译依赖

    我正在尝试使用vuex 模块装饰器 https github com championswimmer vuex module decoratorsLaravel Mix 项目中的库 使用 TypeScript 但我不断收到错误Uncaugh
  • 比较两个 OpenCV 图像/2D Numpy 数组

    我刚开始使用 OpenCV Python 和 Numpy 但已经成为 Java C C 程序员有一段时间了 我正在实现一个 sigma delta 背景检测器 它执行以下操作 设 i1 为第一张图像 设 i2 为第二张图像 for each
  • 将字节数组插入 List 的最简洁方法?

    在某些代码中 我正在创建一个字节列表 并希望在构建它时将一个字节数组插入到该列表中 这样做最干净的方法是什么 请参阅下面的代码 谢谢 public class ListInsert public static byte getData re
  • 安装 MvcScaffolding 包时 NuGet 执行策略错误

    我在项目中使用 Visual Web Developer Express 2010 Windows XP 和 ASP NET MVC4 RC 我安装了 NuGet v2 0 30619 9119 我现在尝试通过 NuGet 包管理器控制台安
  • 在运行脚本的页面上查找 xpath

    我正在尝试使用硒抓取网页 通过检查页面并右键单击建议的 xpath 属于不稳定类型 html body table 2 tbody tr 1 td form table tbody tr 2 所以我尝试了以下解决方案 driver webd
  • 当我们可以创建 String s = "abc" 时,需要什么 String s = new String("abc")

    据我的理解 String s new String abc 将创建两个对象 字符串常量池中的一个 如果 abc 尚未在常量池中 堆内存中的一个 尽管对于实际将创建多少对象以及在何处创建存在多种理解 无论如何 我有以下问题 为什么 Strin
  • 在 NodeJS 中从 Base64 字符串创建图像

    我正在尝试上传从画布中提取并通过 ajax 发布的图像 但在服务器端创建图像文件时遇到问题 我有以下这个答案 https stackoverflow com a 7347358 1358670 https stackoverflow com
  • 在django中使用聚合获取最小值字段名称

    我有一个模型 其中包含如下所示的一些字段 class Choclate models Model name models CharField max length 256 price models IntegerField 所以我想获取具有
  • 将日期时间指定为索引不会给出 DatetimeIndex

    我的 df 有一个名为 天 的字段 我需要从 天 和开始日期创建一个日期时间 可能很麻烦 但它有效 for t in df index df loc t date datetime date startdate datetime timed
  • NLog 不写入调试消息

    在我的代码中我有一些信息消息 例如logger Log dwewe and logger Debug ddddf 问题是即使我在 VS 中调试 调试消息也不会被写入
  • Visual Studio 2017 无法脱机安装,并显示“无法下载安装文件”

    因此 我使用以下命令在我的笔记本电脑上创建了 VS 2017 Community 的离线安装 vs community exe layout D Downloads VS Community 2017 lang en US add Micr
  • 在 Windows 上使用 SQLCipher 编译 SQLite

    我正在关注this http groups google com group sqlcipher browse thread thread 55c6296b56bf4533在 Windows 上使用 SQLCipher 编译 SQLite
  • 如何理解elf中Program Headers中Offset和VirAddr的区别?

    有一个共享库elf文件 我使用readelf l查看程序头 输出为 Elf file type is DYN Shared object file Entry point 0x0 There are 11 program headers s
  • 指定容器类型的迭代器类型的部分特化

    我有一个模板结构 它接受模板参数的迭代器类型 现在我需要将该类专门用于不同容器的迭代器 我尝试过 std vector template