带有嵌套结构/类的 POD-ness
POD-ness with nested structs/classes
我有一个关于 POD 的问题。我预计如果 B 是非 POD 并且 B 是 A 中的成员,那么 A 也是非 POD。但是,下面的代码示例输出"10",因此 B 被正确地视为非 POD,但 A 是。
struct A
{
int i;
struct B
{
std::string s;
};
};
std::cout << std::is_pod<A>::value;
std::cout << std::is_pod<A::B>::value;
这是 GCC 中的错误吗?我正在使用"c ++ (GCC( 7.3.1 20180312"。我看不出这种行为的意义。假设我想优化缓冲区分配并使用 POD 检查来确定我是否必须对特定类型使用 new 或可以使用 malloc/realloc。使用 malloc 为 A 分配存储是完全错误的。此致敬意
A
里面有一个A::B
类型。
A
的实例中没有A::B
实例。只有类型的定义,但没有实例化。
将B b;
添加到A
,您的异常就会消失。
相关文章:
- 具有默认模板参数的多态类的模板推导失败
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- std::具有相同基类的类的变体
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 无法访问嵌套类.类的使用无效
- 如何返回一个类的两个对象相加的结果
- C++中带有List类的迭代器Segfault
- 无法创建抽象类的实例
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 约束类模板函数以接受特定的 POD 类型
- 我可以说服自动生成的构造函数将我的 POD 类成员归零吗?
- 带有嵌套结构/类的 POD-ness
- 视觉C++似乎正在零初始化一个不应该的类的 POD 成员
- STD :: Atomic在一个简单的POD类中
- 具有可选成员的 POD 模板类
- (POD 结构、POD 类和 POD)成员的 c++ 隐式类成员初始化
- 是否存在非POD结构优先于类的有效用例
- C++中POD类的快速默认排序
- 在表达式内部具有内联构造的 POD 类