返回

c++-他的c++20大括号初始化向后兼容性失败的原因是什么?

发布时间:2022-06-12 07:56:13 333
# golang

我发现了一个有趣的案例,其中有效(?)使用C++20编译时,C++17代码失败。最简单的复制是具有显式默认构造函数的结构。在C++17上,此代码运行良好。在C++20中,它无法编译。在Clang和GCC上测试。

struct A {
    int val;
    A() = default;

    // When commented out: only works with C++17 or earlier
    // When uncommented: works up to C++20
    //A(int val) : val(val) { }
};

int main() {
    A a{4};
}

有人知道为什么会这样吗?

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像