0
摘要
我试图在AIX 11.1编译器的新AIX 7机器上编译旧的C++应用程序。此应用程序在非POD类上使用offsetof。xlC忽略POD上的offsetof选项
我将langlvl选项设置为strict98,并设置“offsetnonpod”选项,该选项告诉编译器在非POD类上允许offsetof。
如果我删除offsetnonpod设置并使用langlvl扩展,则会出现相同的错误。 看来我必须在指定offsetnonpod选项时出错,或者编译器实际上不支持这种功能。
实施例代码
#include <iostream>
struct Foo
{
private:
int x;
};
int main()
{
std::cout << offsetof(Foo, x);
return 0;
}
我建立与此命令:
xlc++_r -qlanglvl=offsetnonpod -qlanglvl=strict98 test.cpp
我也得到这样的:
"test.cpp", line 11.32: 1540-0287 (S) "offsetof" must not be applied to "struct Foo". It is not a POD (plain old data) type.
哇,谢谢你指出。这是残酷的......在一个大消息中改变一个角色。我想在将来阅读时我会更加谨慎。 – user1145530 2013-05-01 12:56:16