聚合类型(std::is_aggregate_v<T> == true
)是否暗示该类型也是标准布局(std::is_standard_layout_v<T> == true
)?我的直觉是答案是肯定的,但是我并不完全相信。
最佳答案
不,不是的。为了使一个类类型成为标准布局,其所有非静态成员本身都必须是标准布局。但是,对集合没有施加相同的递归要求。所以一个简单的反例
struct bar {
virtual ~bar() {}
};
struct foo {
bar b;
};
foo
是一个聚合,但不是标准布局。关于c++ - 聚合类型是否暗示它也是标准布局?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58738474/