gpt4 book ai didi

c++ - 默认的默认构造函数可以抛出吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:09 24 4
gpt4 key购买 nike

默认的默认构造函数由C++ 编译器生成,用户无法控制它们。他们能扔吗?声明一个的时候指定noexcept可以吗?

下面的代码可以用 gcc 编译。

struct A
{
A() = default;
};

struct B
{
B() noexcept = default;
};

int main()
{
A a;
B b;

return 0;
}

最佳答案

允许将noexcept 说明符添加到默认的特殊成员函数(默认构造函数、复制构造函数、赋值运算符等)。

default 声明的特殊成员函数将有一个 noexcept 说明符,具体取决于所涉及函数的 noexcept 说明符(其隐含的 noexcept 说明符) .如果您显式指定 noexcept,如果这与隐式 noexcept 说明符冲突,编译应该失败。

关于c++ - 默认的默认构造函数可以抛出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com