为什么模板类型参数不被推断为“const”? [复制]

2024-03-05

可能的重复:
从右值参数推导对 const 的引用 https://stackoverflow.com/questions/6075093/deducing-references-to-const-from-rvalue-arguments

如果我有

template<class T>
void foo(T &) { }

我称之为foo((const int)5),假设参数是const int,为什么编译器不自动推断T to be const int?


整数文字的类型是int, not const int,根据 C++03 标准,第 2.12.1.2 条。

整数文字的类型取决于其形式、值和后缀。 如果它是十进制且没有后缀,则它具有以下类型中的第一个 它的值可以表示:int、long int;...

Update

另一个相关的类型推导规则可能是 14.8.2.1.2。

如果 P 不是引用类型:

[...]

— 如果 A 是 cv 限定类型,则 A 类型的顶级 cv 限定符 类型推导将被忽略。

如果 P 是 cv 限定类型,则 P 类型的顶级 cv 限定符 类型推导将被忽略。

如果 P 是引用类型,则 P 引用的类型用于类型 扣除。

OP 提供的代码甚至无法编译,因为将非常量引用绑定到右值是非法的。

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

为什么模板类型参数不被推断为“const”? [复制] 的相关文章

随机推荐

  • CMake-CPack包安装路径噩梦

    我对 CMake CPack 感到沮丧近一周了 不好的是 CMake CPack 在线文档没有很好地记录这部分 经过谷歌搜索后 我找到了可以使用的变量 CPACK PACKAGING PREFIX NOT documented CMAKE
  • 按分钟对索引进行分组并计算平均值

    所以我有一个名为 df 的 pandas 数据框 我想删除秒数并只使用 YYYY MM DD HH MM 格式的索引 然后还会对分钟进行分组并显示该分钟的平均值 所以我想把这个数据框 value 2015 05 03 00 00 00 61
  • 5 分钟内的 Maven 问题

    我正在跟进5 分钟内完成 Maven http maven apache org guides getting started maven in five minutes html手册包含以下内容 mvn archetype generat
  • MapGroupsWithState 的 Spark 结构化流状态存储在哪里?

    我知道状态作为状态存储保存在检查点位置 但我不知道它还在内存中 存储在哪里 我创建了一个使用mapGroupsWithState的Streaming作业 但我看到执行器使用的存储内存为0 这是否意味着状态存储在执行内存中 我无法知道状态消耗
  • 如何在 Swift 中将字典保存到核心数据

    使用 Core Data 保存字典的最佳方法是什么 我有一本字典定义为 var myRecipes String Recipe 其中 Recipe 是一个包含菜谱健康信息的结构 该字符串将是 早餐 或 午餐 等类别 而食谱数组将包含早餐或午
  • 如何检查嵌入资源是否存在?

    在 Delphi 中 我正在构建一个 HTTP 应用程序 或者更确切地说是一个 Web 服务器 它本质上是一个内置于单个 EXE 文件中的整个网站 我嵌入的文件包括 HTML JS CSS SWF PNG XML 等 资源名称与原始文件名相
  • Drools-如何找出所有规则都匹配了?

    我有一个 DRL 文件 其中有 10 条规则 一旦我插入一个事实 一些规则可能会被匹配 我如何找出以编程方式匹配的规则 请注意 此答案对于 Drools 5 x 及以下版本有效 如果您已转到 6 或更高版本 请查看 melchoir55 修
  • 在 Dispatchertimer.Tick 事件中发送额外参数

    我的问题是如何在 Dispatchertimer Tick 事件中发送一些参数 这是代码 我想要的是在dispatcheTimer Tick处接收一个整数值 dispatcherTimer Tick new EventHandler dis
  • SQLITE_TRANSIENT 在 Swift 中未定义

    我正在使用 xcode 6 并且我已经导入libsqlite3 dylib and libsqlite3 0 dylib 我还添加了Bridging Header h文件女巫导入 sqlite3 h 我可以打开 SQLite 数据库并执行简
  • PHP:根据固定基准日期获取下一个日期

    PHP 有没有办法使用给定日期的 4 周间隔获取下一个日期 Example 我的开始日期是 2014 年 1 月 3 日星期五 我的间隔是从该日期起每 4 周一次 我正在寻找的是当前日期中与此 4 周间隔相匹配的下一个日期 或多个日期 如果
  • Google Maps API 和标记之间的自定义折线路线

    我想为 Android 应用程序创建一个自定义路由 我不确定应该使用哪个 API 以及它是否与 Java 兼容 据我所知 我需要使用航点来制定路线 我不需要知道两点之间的距离 只需制定路线 目标是从地图一侧的菜单中选择一个选项 并显示两个标
  • 多层架构中,是否可以跳过业务层进行增删改查操作?

    我们有 3 层应用程序 其中来自服务层的每个调用都进入业务层并由数据层保存 每层组件只能调用下面的层 然而 由于我们有数百个实体 并且有很多与 CRUD 操作相关的服务 因此我们的团队引发了很多争议 有些人认为 为了维护和易于开发 最好从
  • 设备部署是否足以模拟应用程序更新?

    通过应用程序商店 由 lambda 用户在设备上 进行的应用程序更新过程没有很好的记录 我将所有这些总结为以下问题 当用户更新他的应用程序时会发生什么 是所有内容都被删除 还是只是应用程序的某些部分 那么什么是保留的 什么是不保留的 如何在
  • 大规模互联网应用,从何入手?

    我正在从事的工作 我认为有关大规模应用程序 大规模网络的知识会对我有很大帮助 你认为我应该采取什么 我的意思是要读的书 要参加的课程 等等 预先感谢您的任何建议 PS 也许我的意思是应用程序不够大 D 一种适用于 gt 10 万用户的社交网
  • 如何在 spring 中配置自动装配

    如何在 spring 中配置自动装配 将上下文架构添加到配置 XML 并使用 Autowired 注释 http static springsource org spring docs 2 5 x reference beans html
  • vi 加密:使用了什么算法?

    我多年来一直使用加密文件来存储我的密码 它已使用加密vi xSun Solaris 10 上的命令 我现在尝试使用以下命令在 Linux 机器上打开该文件vi x and vi x cm blowfish 可悲的是 该文件完全混乱了 我的猜
  • C++ getline 使用逗号作为分隔符的多个变量类型

    我正在尝试做一个家庭作业 需要将 txt 文件中的数据读入变量中 该文件的每一行都有 姓氏 姓名缩写 号码 号码 我已经使用以下代码使 get 线部分工作 ifstream inputFile Students txt string lin
  • laravel 使用 php artisan 时从自定义存根创建模型

    当我使用php artisan make model CustomNamespace TestModel 我得到一个基于默认存根的模型 如下所示 namespace App Models CustomNamespace use Illumi
  • 在WKWebView中使用自定义字体

    我在我的应用程序中使用自定义字体 它们被复制到捆绑包并硬编码到 appName info plist 这种字体在整个应用程序和 UIWebView 中完美运行 我正在加载 htmlString webView loadHTMLString
  • 为什么模板类型参数不被推断为“const”? [复制]

    这个问题在这里已经有答案了 可能的重复 从右值参数推导对 const 的引用 https stackoverflow com questions 6075093 deducing references to const from rvalu