gpt4 book ai didi

c++ - 具有嵌套结构/类的 POD-ness

转载 作者:搜寻专家 更新时间:2023-10-31 00:27:21 34 4
gpt4 key购买 nike

我有一个关于 POD-ness 的问题。我预计如果 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,您的异常就会消失。

关于c++ - 具有嵌套结构/类的 POD-ness,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49455064/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com