1

可能重复:
为什么不能在 C++ 中的非 POD 结构上使用 offsetof?

我有两节课:

struct A{
  double one;
  float two;
};

struct B : public A{
  float three;
};

如果我正确地解释了 C++11 标准布局限制,那么 B 不是标准布局,因为 B 和 A 都具有非静态数据成员。我想结合 HDF5 使用像 B 这样的结构,这需要使用offsetof宏,(据我所知)仅限于标准布局对象。我的问题是,可能会出现什么问题,表达如下

offsetof(B, three)

它适用于 gcc-4.6,但有没有人在类似情况下遇到过意外行为?如果是这样,哪个和哪个编译器?最坏的情况是什么?

问候克拉斯

4

0 回答 0