模板参数推导和 cons 限定

2023-11-27

谁能解释一下为什么代码不能编译。

template<class T, class DER>
struct Base {
  T a;
  Base(const T argB) : a(argB){}
};

template<class T>
struct Derived : Base<T, Derived<T> > {
  Derived(const T argD) : Base<T, Derived<T> >(argD){}
};

int main() {
  int val = 10;
  const int *p = &val;
  /* this was in the original question
  Derived<int*> d(p); // breaks, but compiles with Derived<const int*> d(p);
  */
  Derived d(p); // fails, but Derived<const int*> d(p); compiles
}

错误消息是关于没有从int* to const int*。照我看来T可以替换为int*在这种情况下,构造函数Derived接收其参数作为const int*并调用基数const int*。那么为什么持续的资格会消失呢?

我显然不明白模板参数推导是如何工作的。我无法找到任何清晰但严格且详尽的描述来说明它在什么情况下是如何工作的const, * and &正在玩。也就是说,什么会a在这些不同的情况下推断出类型。

 Foo(T& a)
 Foo(T  a)
 Foo(T* a)
 Foo(const T a)
 Foo(const T*a)
 Foo(const t&a)

when a is

  • 一个东西,
  • 一个指针和
  • 数组。

因为构造函数Derived is Derived(const T argD),所以在你的情况下是Derived(int * const)。这不接受const int*.

A “const(指向 int 的指针)”不是一个“(指向 const int 的指针)”.

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

模板参数推导和 cons 限定 的相关文章

随机推荐

  • Java 中的实时绘图

    我有一个应用程序 它每秒更新变量大约 5 到 50 次 我正在寻找某种方法来实时绘制此变化的连续 XY 图 尽管 JFreeChart 不推荐用于如此高的更新率 但许多用户仍然表示它适合他们 我尝试过使用thisdemo 并修改它以显示随机
  • 带有 RS-232 串行端口的 Javascript 接口

    我目前正在从事一个涉及 4 端口 A V 交换机的项目 该开关可通过 RS 232 进行控制 与交换机连接的计算机运行 Vista 我想创建一个侧边栏小工具 它有 4 个按钮 交换机上的每个端口 1 个 当用户按下按钮时 它会切换到该端口
  • __base__ 不起作用!下一步是什么?

    以下代码在 Python 3 x 中不起作用 但它曾经适用于旧式类 class Extender def extension self print Some work class Base pass Base bases Extender
  • iPhone 6 和 6 plus 给出错误的框架、边界值[重复]

    这个问题在这里已经有答案了 我的应用程序在 Xcode 5 1 1 上构建 但在 Xcode 6 上升级后 面临着新尺寸的帧尺寸问题 iPhone 6 的分辨率为 750x1334 但是 获得输出 480x300 是否有人在 iOS 8 i
  • Tkinter:如何让画布窗口中的框架扩展到画布的大小?

    所以我一直在 tkinter 中使用画布小部件来创建一个充满标签且带有滚动条的框架 一切工作正常 除了框架仅扩展到放置在其中的标签的大小 我希望框架扩展到父画布的大小 如果我对画布中的框架使用 pack expand True 我已在下面的
  • JMeter:java.net.NoRouteToHostException:无法分配请求的地址(地址不可用)

    我创建了一个带有 HelloController 的简单 Spring boot 应用程序 Get API http localhost 8080 hello Response Hello World 现在我创建了一个 JMeter 脚本
  • JavaScript 中 while(i--) 是什么意思?

    我正在使用 swipejsswipejs com 主页滑块使用此逻辑来突出显示活动的无序列表元素 我想知道这是如何实现的同时条件 works ul li li ul var bullets document getElementById b
  • 绑定许多数据框,添加带有其 id 的列[重复]

    这个问题在这里已经有答案了 我有许多重复命名的数据框 df 1 lt data frame x c 1 2 y 2 df 2 lt data frame x c 2 4 y 4 df 3 lt data frame x 2 y c 4 5
  • 哪里有复杂 ASP.net MVC 模型的示例? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找更复杂的 asp net 的示例mvc模型 我在 ASP net 站点上看到的所有模型都非常非常简单 并且只涉及一两个数据库表 我很好奇如
  • 对实体/资源进行 RESTful API 授权?

    我正在一个具有非常复杂的访问控制规则的系统中开发 API 通常需要复杂的 SQL 查询来确定用户是否具有对特定资源的读取或写入访问权限 这会导致我们的客户端应用程序变得非常复杂和冗余 因为它们必须了解所有这些规则才能确定是否向用户提供每个对
  • Flask中如何获取请求体字节?

    请求的content type is application json 但我想获取请求正文字节 Flask 会自动将数据转换为json 如何获取请求正文 您可以通过调用获取非表单相关的数据request get data 您可以通过访问来获
  • 单个图像文件用于存储页面上的所有小图像

    在最近的一场Stackoverflow 播客 Jeff 谈到拥有一个图像文件 其中包含遍布整个页面的所有小图像 然后使用 CSS 对其进行剪切 以便所有图像都能正确显示 重点是减少服务器请求的数量 以便页面加载速度更快 我当时想 哇 这真的
  • powershell脚本格式表输出中的颜色词

    是否可以使用格式表为 powershell 输出仅对某些单词 而不是完整的行 进行着色 例如 此脚本递归扫描文件夹中的字符串 然后使用格式表输出结果 dir r i Select String args 0 format table Pro
  • 从 xml 创建 python 对象表示的模块 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找一个易于处理的
  • 当用户向下滚动页面时加载图像 -

    我注意到博客中有一种趋势 即在向下滚动页面并且图像出现在视图屏幕中之前 图像不会加载 我想这一定是某种 jquery 魔法 但经过一番谷歌搜索后我无法弄清楚它是如何工作的 有谁知道这是如何做到的 编辑 如果您想查看此行为的示例 请查看 be
  • PHP:CURL已启用但没有效果

    I m trying to get data from external website using cURL in PHP but somehow it s not working I ve checked out that CURL e
  • 缺少“构建签名的 apk”选项

    将 Android Studio 更新到最新版本后 我找不到构建签名 apk 的选项 我已经尝试安装 Android Studio 的 beta 版和金丝雀版本 但它们似乎也不带有该选项 有人可以帮我弄清楚如何生成签名的apk吗 我尝试过重
  • 共享App应用程序快捷方式[UIApplicationShortcutIconTypeShare]

    我见过很多应用程序都使用UIApplicationShortcutIconTypeShare直接从主屏幕共享应用程序的应用程序快捷方式 它直接从主屏幕启动 UIActivityViewController 而无需打开应用程序 你是怎样做的
  • 每个 CPU 架构的真正 ELF TLS ABI 要求是什么?

    乌尔里希 德雷珀的论文on thread local storage 概述了几种不同 cpu 架构的 TLS ABI 但我发现它不足以作为实现 TLS 的基础 原因有两个 它省略了许多重要的体系结构 如 ARM MIPS 等 同时包括一堆完
  • 模板参数推导和 cons 限定

    谁能解释一下为什么代码不能编译 template