继承的构造函数,在 clang++3.9 中编译,在 g++ 7 中失败

2024-03-08

这段代码片段

struct Base{};
struct Derived: Base{
    using Base::Base;
};

int main() 
{
    Base b;
    Derived d{b};
}

在 clang++3.9 上编译良好 https://godbolt.org/g/buX56c,然而它在所有 gcc 上都失败 http://coliru.stacked-crooked.com/a/d1743be2631af6db(包括 7 个)以及版本小于 3.9 且带有错误消息的 clang

错误:没有匹配的函数可用于调用“Derived::Derived() Derived d{b}”。

上面的代码是否符合标准?

PS:如果我注释掉using Base::Base行,代码在 clang-3.9 上不再编译。


This is CWG 2356 http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#2356. It appears that both gcc and clang implement this already (clang 4.0+ rejects it), despite it still being "tentatively ready" and not actually adopted into the working draft yet. even thought it was only just adopted into the working draft in Rapperswil last month via P1114 http://wiki.edg.com/pub/Wg21rapperswil2018/StrawPolls/p1114r0.html.

那里的规则是:

从类类型继承的构造函数C(15.6.3 [class.inhctor.init]),其第一个参数的类型为“引用”cv1 P”(包括从模板实例化的构造函数)在构造 类型的对象时被排除在候选函数集中cv2 D如果参数列表只有一个参数并且C与参考相关P and P与参考相关D.

这不包括Base考虑复制构造函数(在我们的例子中C and P都是B, and B与参考相关D),这就是两个编译器拒绝您的代码的原因。

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

继承的构造函数,在 clang++3.9 中编译,在 g++ 7 中失败 的相关文章

  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 新对象创建后控制方法调用的调用

    我有一个预定的方法调用 它在预定的时间调用以下方法 private void doSomething Map
  • Pandas 返回包含字符串的单元格位置

    我是数据分析新手 我想找到包含输入字符串的单元格位置 example Price Rate p lot Total Comm 947 2 1 25 CAD 1 25 129 3 2 1 CAD 1 25 161 69 0 8 CAD 2 0
  • SwiftUI - 如何在 init 中使用 fetchRequest 更新数据

    我正在我的内部进行 CoreData 获取init 视图的方法 我没有在 SwiftUI 中使用 FetchRequest 因为我需要一个基于发送到视图的参数的谓词 在 FetchRequest 中使用该参数将导致错误 因为该变量尚未初始化
  • T-SQL 将连接字符串声明为参数

    DECLARE DBS nvarchar 32 SET DBS Current Archive SELECT TOP 100 FROM DBS dbo table 我有两个结构相同的数据库位于同一服务器上 一种仅保存信息 30 天 以便快速
  • WCF 命名管道错误:管道已结束。 (109, 0x6d)

    我看过其他有关 管道已结束 109 0x6d 的帖子 但没有一个能解决我的问题 我在这个博客上有一个相对简单的设置基础 http tech pro tutorial 855 wcf tutorial basic interprocess c
  • Spring中@Secured与@RolesAllowed之间的区别?基于角色的安全的概念是什么?

    我正在学习Spring Security 我对以下有关使用之间的区别有疑问 Secured注释和 RolesAllowed注解 我知道两者都必须用于方法级别 在我的学习材料中我发现了以下2个例子 RolesAllowed注解 import
  • EJB、hibernate、spring 和 JSF 有什么区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对不同的java框架感到非常困惑 我想创建一个 java 服务器项目来提供一些 Restful Web 服务 但我真的不知道应该选择
  • 无法获取价值,因为它已被优化掉

    我在调试时遇到问题 突然间 我在调试时看不到大多数变量的值 我设法在立即窗口中收到两条不同的消息 无法获取本地或参数 参数 的值 因为它在此指令指针处不可用 可能是因为它已被优化掉 and 表达式求值器中出现内部错误 我已经尝试并检查了以下
  • 在 swift 中发布 json 请求

    我知道如何发布简单的 json Compose a query string let postString firstName James lastName Bond request HTTPBody postString dataUsin
  • Java上将数据库中的数据以表单的形式输出给用户

    我最近开始学习Java 我需要用 Java 编写一个 Web 应用程序 用户可以从下拉列表中的主页 html 页面上的表单中选择他所需的产品 产品列表存储在数据库的表中 使用 MySQL 然后将所选产品写入 订单历史记录 表中 如何将数据库
  • 如何修复谷歌播放服务错误

    今天更新根文件夹中的播放服务后 我面临以下问题 我很困惑如何解决这个问题 谁能帮我解决这个问题吗 这个错误非常令人恼火 我不知道冲突在哪里 顺便说一句 为什么它显示冲突 而没有版本相互关联 Error 库 com google androi
  • PHP:如何获取过去特定日期的上周日?

    我正在从数据库中检索一个条目及其关联的日期 我希望能够获取相对于该特定日期的上周日和下周六来填充 jQuery 日期选择器 我知道如何使用实际时间 日期来做到这一点 strtotime last Sunday 但我不知道除了现在以外的约会该
  • SQL Server 中的 INNER JOIN 与 LEFT JOIN 性能

    我创建了在 9 个表上使用 INNER JOIN 的 SQL 命令 无论如何这个命令需要很长时间 超过五分钟 因此 我的家人建议我将 INNER JOIN 更改为 LEFT JOIN 因为 LEFT JOIN 的性能更好 尽管我知道 改了之
  • PHP fopen 会遵循 301 重定向吗?

    我们有一段遗留代码 ab 使用fopen 通过 HTTP 调用资源 fopen http example com 我们想要将 example com 移动到另一个主机 然后发送 301 Permanently Moved 但是 我们不完全确
  • 获取 SQL 表列的总和,直到总和达到 5000

    我正在对一个包含两列的表进行 sql 查询Amount and Date应该返回总和Amount列值直到达到5000它也应该返回值Date列在Sum Amount 达到5000排序Date 例如我的数据中有以下数据SQL TABLE ID
  • 使用带有标记的谷歌街景视图,如何将 POV 指向标记?

    我有一个简单的街景视图 可以向我显示给定地址的街景视图 var geocoder new google maps Geocoder var address 344 Laguna Dr Milpitas CA 95035 geocoder g
  • 由于未安装 EntityFrameworkCore.Tools,添加迁移失败

    我想按照本教程使用 EF Core 创建一个控制台应用程序 http ef readthedocs io en latest platforms full dotnet new db html http ef readthedocs io
  • Golang并发访问固定大小的map/array

    我正在探索使用固定键并发访问地图而无需锁定的可能性 以提高性能 我之前已经探索过与 slice 类似的功能 并且似乎它有效 func TestConcurrentSlice t testing T fixed int 1 2 3 wg sy
  • Unity:从设备摄像头录制视频

    我想要一个插件或一个库或一种从设备摄像头统一 Windows 独立 录制视频 当然有声音 的方法 目前 我可以使用该相机进行屏幕截图 有人说我可以截取很多张屏幕截图并将其转换为一个视频文件 我在资源商店找到了一个名为相机拍摄 https a
  • 继承的构造函数,在 clang++3.9 中编译,在 g++ 7 中失败

    这段代码片段 struct Base struct Derived Base using Base Base int main Base b Derived d b 在 clang 3 9 上编译良好 https godbolt org g