在 C++17 中,将默认构造函数声明为聚合中的默认构造函数有什么区别,如:
struct A {
A() = default;
int v;
};
vs 依赖它被隐式定义,如:
struct A {
int v;
};
我知道在 C++20 中,声明构造函数会导致 A 不是聚合。当我将构建标志切换为 C++20 时,我只想删除构造函数声明,以便结构保持聚合,但我想知道这是否有任何副作用?
在聚合中将默认构造函数声明为默认值有什么不同吗
在这种情况下没有区别。无论您是否显式编写默认构造函数
=default
,编译器都会生成相同的东西,并且您的变量v
无论如何都被初始化为0。