POD 的 C++11 中的构造函数要求 [重复]
Posted
技术标签:
【中文标题】POD 的 C++11 中的构造函数要求 [重复]【英文标题】:Constructor requirements in C++11 for POD [duplicate] 【发布时间】:2012-08-27 01:26:08 【问题描述】:可能重复:What are Aggregates and PODs and how/why are they special?
C++11 中的 struct 需要什么样的构造函数才能将这个 struct 保持为 POD?
只接受初始化列表?或者可能没有任何限制?
【问题讨论】:
【参考方案1】:你需要一个默认的默认构造函数,这样它就很简单了:
struct pot
constexpr pot() noexcept = default;
pot(int a, float b) : x(a), y(b)
int x;
float y;
;
constexpr
和 noexcept
是可选的,但我们也可以。
用法:
pot p; // OK
pot q(1, 1.5); // also OK
【讨论】:
为什么在这里使用 constexpr 作为构造函数? @NikitaTrophimov:您不妨提供最有力的保证,不是吗?这样你就可以在常量表达式中使用类型。以上是关于POD 的 C++11 中的构造函数要求 [重复]的主要内容,如果未能解决你的问题,请参考以下文章