我正在为微控制器编写代码,需要确保我的结构是 POD。我以为我可以使用“成员初始化列表”来初始化成员,但这没有通过“is_pod”测试。在下面的示例中,A 是 POD,B 和 C 不是。添加“D() = 默认值;” to D 似乎使它成为一个 POD。但是,通过这样做,我不能再拥有“成员初始值设定项列表”?有没有办法让结构成为 POD,并拥有“成员初始值设定项列表”?
#include <iostream>
#include <string>
struct A {
int var1;
};
struct B {
int var1;
//B() = default;
B() : var1(100) {}
};
struct C {
int bar [10];
C() : bar{0} {}
};
struct D {
int var1;
D() = default;
//D(int x) : var1(x) {}
};
int main()
{
std::cout << std::boolalpha;
std::cout << "\nIs A a POD = " << std::is_pod<A>::value;
std::cout << …Run Code Online (Sandbox Code Playgroud)