在这里我发现:
继承构造函数 [...] 默认情况下都是 noexcept(true),除非它们需要调用 noexcept(false) 的函数,在这种情况下,这些函数是 noexcept(false)。
这是否意味着在下面的示例中,继承的构造函数是noexcept(true)
,即使它已noexcept(false)
在基类中明确定义,或者它本身被视为要调用的 noexcept(false) 函数?
struct Base {
Base() noexcept(false) { }
};
struct Derived: public Base {
using Base::Base;
};
int main() {
Derived d;
}