首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xlC忽略POD上的offsetof选项

xlC忽略POD上的offsetof选项
EN

Stack Overflow用户
提问于 2013-05-01 01:42:27
回答 1查看 140关注 0票数 0

摘要

我正在尝试使用AIX11.1编译器在新的AIX7机器上编译一个旧的C++应用程序。此应用程序在非POD类上使用offsetof。

我将langlvl选项设置为strict98,还设置了"offsetnonpod“选项,这将告诉编译器允许在非POD类上使用offsetof。

如果我删除offsetnonpod设置并使用extended for langlvl,我会得到相同的错误。似乎我一定是在指定offsetnonpod选项时做错了什么,或者编译器实际上并不支持这样的功能。

示例代码

代码语言:javascript
运行
复制
#include <iostream>

struct Foo
{
private:
    int x;
};

int main()
{
    std::cout << offsetof(Foo, x);
    return 0;
}

我使用以下命令进行构建:

代码语言:javascript
运行
复制
xlc++_r -qlanglvl=offsetnonpod -qlanglvl=strict98 test.cpp

我得到了这个:

代码语言:javascript
运行
复制
"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.
EN

回答 1

Stack Overflow用户

发布于 2013-05-01 20:13:48

该选项将消息从(S)更改为(W)。警告消息将允许编译成功,并允许offsetof。

将-qlanglvl=strict98放在第一位,因为该选项将设置-qlanglvl=nooffsetnonpod

xlC -qlanglvl=strict98 -qlanglvl=offsetnonpod a.cpp "a.cpp",第11.18行: 1540-1281 (W) "offsetof“不能应用于"struct Foo”。它不是POD (普通旧数据)类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16305883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档