有一个包含POD的结构,默认构造函数已删除。尝试对struct实例进行汇总初始化时,使用编译时会在g ++ 9.1中导致编译错误-std=c++2a。相同的代码可以使用编译-std=c++17。
-std=c++2a
-std=c++17
https://godbolt.org/z/xlRHLL
struct S { int a; S() = delete; }; int main() { S s {.a = 0}; }
c++ deleted-functions aggregate-initialization c++17 c++20
aggregate-initialization ×1
c++ ×1
c++17 ×1
c++20 ×1
deleted-functions ×1