将默认构造函数声明为默认值有什么好处吗?

问题描述 投票:0回答:1

在 C++17 中,将默认构造函数声明为聚合中的默认构造函数有什么区别,如:

struct A {
   A() = default;
   int v;
};

vs 依赖它被隐式定义,如:

struct A {
   int v;
};

我知道在 C++20 中,声明构造函数会导致 A 不是聚合。当我将构建标志切换为 C++20 时,我只想删除构造函数声明,以便结构保持聚合,但我想知道这是否有任何副作用?

c++ constructor aggregate
1个回答
0
投票

在聚合中将默认构造函数声明为默认值有什么不同吗

在这种情况下没有区别。无论您是否显式编写默认构造函数

=default
,编译器都会生成相同的东西,并且您的变量
v
无论如何都被初始化为0。

© www.soinside.com 2019 - 2024. All rights reserved.