就拿这个简单的例子。
struct Base {
// Base::Base() defined by the compiler
};
struct Derived: Base {
using Base::Base; // Should inherit Base::Base()
Derived(int value):
m_value(value)
{}
private:
int m_value; // If Base::Base() is invoked, it's default constructed
};
Derived t;
据我了解通过阅读cppreference , Derived
应该继承默认Base::Base()
构造函数和上面的代码应该高高兴兴地编译。
编辑 :我的坏,我链接到页面告诉完全相反的故事。 如此看来铛的得到了回归。
不过,我已经试过所有的gcc版本不及格吧,抱怨Derived
没有默认的构造函数,而铛做它就好了,但只是因为3.9.0版本 ; 克++ - 7 段错误 ,甚至1。
你可以通过自己看到它godbolt 。
那么,谁的过错吗? 铛允许它,或GCC(扎段错误),不容许吗?
[1]虽然它似乎只能对godbolt,我无法在本地重现段错误。