【发布时间】:2018-12-12 05:42:11
【问题描述】:
这段代码sn-p
struct Base{};
struct Derived: Base{
using Base::Base;
};
int main()
{
Base b;
Derived d{b};
}
compiles fine on clang++3.9,但是它 fails on all gcc's(包括 7 个)和小于 3.9 的版本会发出错误消息
错误:没有匹配函数调用“Derived::Derived() Derived d{b}”。
以上代码是否符合标准?
PS:如果我注释掉 using Base::Base 行,代码将不再在 clang-3.9 上编译。
【问题讨论】:
标签: c++ c++11 inheritance constructor language-lawyer