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