尾随返回类型中的占位符是否会覆盖初始占位符?

2024-01-13

g++ 似乎接受任意组合auto and decltype(auto)作为初始和尾随返回类型:

int a;
auto f() { return (a); }                             // int
auto g() -> auto { return (a); }                     // int
auto h() -> decltype(auto) { return (a); }           // int&
decltype(auto) i() { return (a); }                   // int&
decltype(auto) j() -> auto { return (a); }           // int
decltype(auto) k() -> decltype(auto) { return (a); } // int&

然而,clang拒绝了j and k,说:错误:具有尾随返回类型的函数必须指定返回类型“auto”,而不是“decltype(auto)” (示范 http://goo.gl/uw5h0b).

哪个编译器是正确的?哪个规则(auto or decltype(auto)) 应该在每种情况下使用?在中使用占位符类型是否有意义?尾随返回类型?


auto引入时需要尾随返回类型.

§8.3.5 [dcl.fct] /2

在一份声明中T D where D有形式

D1 ( parameter-declaration-clause ) cv-qualifier-seqopt ref-qualifieropt exception-specificationopt attribute-specifier-seqopt trailing-return-type

以及所包含的类型声明符 ID在声明中T D1是“派生-声明符类型列表 T”,

T应该是单一的类型说明符 auto. [...]

也可以看看核心问题 1852 http://open-std.org/jtc1/sc22/wg21/docs/cwg_toc.html#1852与 [dcl.spec.auto]/1 明显矛盾。

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

尾随返回类型中的占位符是否会覆盖初始占位符? 的相关文章

  • 在 C# 中使用“using”关键字避免多次处置的最佳实践

    当变量是 IDisposable 时 我们有using关键字来管理处置 但是如果我们在方法中返回值怎么办 using twice StringContent stringToStringContent string str using St
  • 如何使用 ASP.NET MVC 编辑多选列表?

    我想编辑一个如下所示的对象 我希望用 UsersGrossList 中的一个或多个用户填充 UsersSelectedList 使用 mvc 中的标准编辑视图 我只得到映射的字符串和布尔值 下面未显示 我在 google 上找到的许多示例都
  • 无法将 std::min 传递给函数,std::min 的副本有效

    Passing std min函数无法编译 我复制了 libcpp 声明std min进入我的源文件并且它可以工作 std 版本有什么问题 clang 和 gcc 也会发生同样的情况 在 Godbolt 上测试 https godbolt
  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • 并行化斐波那契序列生成器

    我正在学习并行化 在一项练习中 我得到了一些我应该提高性能的算法 其中之一是斐波那契数列生成器 array 0 0 array 1 1 for q 2 q lt MAX q array q array q 1 array q 2 我怀疑 这
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • 有什么方法可以重载 C# 中的扩展方法吗?

    我有以下模型模式 public abstract class PARENTCLASS public class CHILD A CLASS PARENTCLASS public static class EXTENSION public s
  • 在 C++11 中移出 stdpriority_queue 的元素

    最小的工作示例 include
  • 在 C# 中何时使用 ArrayList 而不是 array[]?

    我经常使用一个ArrayList而不是 正常 array 当我使用时 我感觉好像我在作弊 或懒惰 ArrayList 什么时候可以使用ArrayList在数组上 数组是强类型的 并且可以很好地用作参数 如果您知道集合的长度并且它是固定的 则
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • 时间:2019-03-17 标签:c++fstream并发访问

    如果从不同的进程 线程同时访问文件会发生什么 据我所知 没有锁定文件的标准方法 只有操作系统特定的功能 就我而言 文件将被经常读取而很少写入 现在如果A打开一个文件进行读取 ifstream 并开始读取块 和B打开相同的文件进行写入 ofs
  • 浮点字节序?

    我正在为实时海上模拟器编写客户端和服务器 并且由于我必须通过套接字发送大量数据 因此我使用二进制数据来最大化可以发送的数据量 我已经了解整数字节顺序以及如何使用htonl and ntohl为了规避字节顺序问题 但我的应用程序与几乎所有模拟
  • 在哪里可以下载没有 Visual Studio 2010 的 C# 4.0 编译器?

    我知道 CTP VS 2010 映像 但我可以只下载 NET Framework 4 0 和 C 编译器吗 AFAIK VS 2010 CTP 仅作为 VM 映像提供 我不相信 Microsoft 发布了 VS 的安装程序 其中一个绝对不适
  • Xamarin.Forms UWP 项目中标题栏和选项卡之间令人恼火的空白

    我几乎是新手Xamarin Forms我正在开发一个相当简单的跨平台应用程序 该应用程序在 Android 中显示得足够好 但在 UWP 中却出现了一个愚蠢的空白 该项目由一个 TabbedPage 组成 其中包含 4 个 Navigati
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • SQL Server“未找到网络路径”在不同环境中随机且不频繁地发生

    类似 如果不是同一个问题 随机遇到网络路径未找到异常 https stackoverflow com questions 38696448 network path not found exception encountered rando

随机推荐

  • 雄辩错误:尚未设置外观根

    我已经在 Slim Framework 2 中成功地使用 Eloquent 作为独立包 但现在我想利用 Illuminate Support Facades DB 因为我需要通过从 2 个表获取信息并使用数据库中的 Left Join 和
  • 如何编写包含布尔值的构造函数?

    这是一个愚蠢的问题 但自从我使用 java 以来已经很长时间了 我如何使用布尔值编写我的构造函数 或者我应该只编写一个默认构造函数 我最近一直在使用C 我忘记了很多java的语法 这是我到目前为止所拥有的 public class Crea
  • Node.js、dgram.setBroadcast(flag) 由于“EBADF”而失败

    我正在使用 Node js 0 6 9 并尝试发送数据报广播包 代码 var sys require util var net require net var dgram require dgram var message new Buff
  • 此类不符合键值编码

    我创建了三个文件SettingsViewController h SettingsViewController m 和SettingsViewController xib 我在单击一行中的单元格时显示 SwttingsViewControl
  • Lua - 我怎样才能获得回报?

    我有兴趣获取函数的任何返回格式 例如 function foo return 1 end local result foo foo is numeric 1 function foo return 1 2 3 end local resul
  • 如何仅重新加载 UICollectionView 的数据部分?

    我试图仅重新加载 UICollectionView 的数据部分 而不是页眉或页脚 补充视图 当我使用reloadData方法 页眉和页脚部分也会重新加载 这就是我想要的 我找到了方法reloadSections 但我不知道为什么它不起作用
  • Android-sdk 管理器未显示所有包

    我有一个问题 我的 android sdk manager 突然停止显示所有软件包 它只显示已安装的软件包 你们能帮我解决这个问题吗 导航到文件 gt 设置 gt Android SDK gt SDK 更新站点选项卡 在该检查中强制 htt
  • ADO.Net 最佳实践 - 进行异步数据库调用时的单个连接与多个连接

    我正在使用 ADO Net 连接到一些 Sql Server 和 Oracle 数据库 并且我想同时运行一些查询 我对 Sql Server 使用 SqlClient 命名空间中的类 对 Oracle 使用 ODP Net 中的类 对于 S
  • watchkit 扩展未启动

    我无法在模拟器上启动 iOS Watch 应用程序 在 Yosemite 上安装了最新的 Beta 6 2 1 我创建一个基于单一视图的应用程序 2 添加App Watch目标 3 自动创建分机和Watch App 4 运行App并启动模拟
  • 如何使图像标题宽度与图像宽度匹配?

    我正在尝试设计这个样式 div class figure img src some image jpg p class caption span class caption text Some caption of any length s
  • C# 获取%AppData%的路径

    C 2008 SP1 我正在使用下面的代码 dt ReadXml AppData DateLinks xml 但是 我收到一个异常 该异常指向我的应用程序运行的位置 找不到路径的一部分 D Projects SubVersionProjec
  • 打字稿导入类

    我已经尝试让这个东西工作很长一段时间了 到目前为止 我找到的解决方案还没有对我有用 这就是我所拥有的 Test ts module t export class Test constructor alert test Main ts
  • 在 JSF 中动态创建响应

    我想在我的 JSF 页面上有一个链接 单击此链接时 Java Web Start 应用程序将启动 该应用程序根本不影响当前页面 该应用程序会自行启动 问题是 我需要动态生成启动 Java Web Start 应用程序的 JNLP 文件 基本
  • 如何在 Pandas 数据框中堆叠行以获得一个“长行”?

    假设我有一个 4 行 3 列的数据框 我想水平堆叠行 这样我就得到一行 12 列 如何操作以及如何处理冲突的列名称 您可以通过以下方式实现这一目标stack计算框架以产生一系列所有值 然后我们希望使用以下方法将其转换回 dfto frame
  • 将二进制浮点“1101.11”转换为十进制(13.75)的正确算法?

    我用C编写了一个程序来转换浮点数以二进制表示 http kipirvine com asm workbook floating tut htm 1101 11 化为小数 13 75 但是 我似乎无法从算法中获得正确的值 将二进制浮点数转换为
  • JavaScript 中的“闭包”到底指的是什么?

    我理解闭包是什么 但我在理解这个术语到底是什么时遇到了一些困难closure指 我在许多网站上看到过这个术语 但很少有人就其实际定义达成一致 是保存在栈帧上的变量吗 是返回的函数吗 它是外部函数的范围吗 它是内部 返回 函数的范围吗 是不是
  • 如何在 Swift 3 中测试 URL 并获取状态代码?

    我正在使用最新版本的 Xcode 撰写本文时为 8 1 它使用 Swift 3 0 我想做的就是获取一个字符串 将其转换为 URL 并测试该 URL 看看它是否会给出 404 错误 我已经能够使用以下方法创建 URL 和 URLReques
  • Node.JS 内核模式线程

    我试图弄清楚 Node JS 其 Windows 版本 是如何在幕后工作的 我知道有用户模式和内核模式线程 并且我知道处理模型如下所示 我还知道从内核模式线程移动到用户模式线程被认为是上下文切换 Node JS C 非阻塞工作线程是内核模式
  • Angular2 在模板和变更检测中的功能

    我试图在服务中构建一种方法 检查是否应根据当前用户的权限向当前用户显示导航按钮 我知道这只是装饰性的 安全性 因此这是放置在模板内的按钮
  • 尾随返回类型中的占位符是否会覆盖初始占位符?

    g 似乎接受任意组合auto and decltype auto 作为初始和尾随返回类型 int a auto f return a int auto g gt auto return a int auto h gt decltype au