C++11中POD的构造函数要求

Constructor requirements in C++11 for POD

本文关键字:构造函数 POD C++11      更新时间:2023-10-16

可能重复:
什么是聚合和POD,它们是如何/为什么特别的?

C++11中的结构体需要什么样的构造函数才能将该结构体保持为POD?

是否只接受初始值设定项列表?或者可能没有任何限制?

您需要一个默认的默认构造函数,这样它就很简单了:

struct pot
{
    constexpr pot() noexcept = default;
    pot(int a, float b) : x(a), y(b) { }
    int x;
    float y;
};

constexprnoexcept是可选的,但我们也可以。

用法:

pot p;         // OK
pot q(1, 1.5); // also OK