小编Dav*_*idH的帖子

C++ 结构未通过 POD 测试

我正在为微控制器编写代码,需要确保我的结构是 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)

c++ struct c++11

5
推荐指数
1
解决办法
425
查看次数

标签 统计

c++ ×1

c++11 ×1

struct ×1