首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >继承显式构造函数(Intel C++)

继承显式构造函数(Intel C++)
EN

Stack Overflow用户
提问于 2017-01-05 21:55:22
回答 1查看 314关注 0票数 10

Intel C++编译器(版本16.0.3.207Build 20160415)在继承基类构造函数时似乎删除了显式说明符。这是个虫子吗?

代码语言:javascript
运行
复制
struct B
{
    explicit B(int) { }
};

struct D : B
{
    using B::B;
};

B b = 1; // Not OK, fine
D d = 1; // Not OK with Microsoft C++ and GCC, but OK with Intel C++
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-05 22:28:55

我认为标准中适当的措辞如下(n4296,12.9继承构造函数):

..。 构造函数或构造函数模板的构造函数特征()为 (2.1) -模板参数列表(14.1),如果有的话, (2.2) -参数-类型列表(8.3.5) (2.3) -缺少或存在显式 (12.3.1)。 对于候选的一组继承构造函数中的每个非模板构造函数(不包括没有参数的构造函数或具有单个参数的复制/移动构造函数),构造函数将使用隐式声明相同的构造函数特征(),除非在出现using-声明的完整类中存在具有相同签名的用户声明构造函数,或者构造函数将是该类的默认、复制或移动构造函数。 ..。

所以很可能是英特尔C++编译器中的一个bug。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41495401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档