微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GCC是否可以产生VS之类的结构/类名不匹配?

如何解决GCC是否可以产生VS之类的结构/类名不匹配?

| 我想让GCC产生一个警告,VisualStudio在找到同时用
class
struct
声明的名称时会产生警告。 (警告4099)这通常是由于前向声明引起的,例如:
struct Base;
...
class Base { ... };
在这种情况下,VS实际上无法链接,因此我将警告升级错误。由于该项目是跨平台的,因此我希望在使用GCC进行编译时也会发现此问题-否则,我可能会无意中签入在VS中不起作用的代码。 是否有任何开关或方法让GCC也拒绝或警告此类类/结构声明不匹配? 注意:从注释中不能确定此警告是否合法。对于我的问题,这无关紧要,因为这种情况会导致VisualStudio中的链接失败(我不能只是忽略警告)。因此,我只想使用GCC来确定问题,以便Windows编译不会突然停止工作。 答案:似乎没有解决办法。

解决方法

gcc不在乎差异。 Itanium ABI以相同的方式处理
class
struct
,使它们成为纯粹的语法差异。 Clang有
-Wmismatched-tags
激活此检测,但我找不到gcc等效项(如果有)。,您正在使用哪个版本的VC ++。 VC ++ 6.0中存在一个错误,这意味着它对ѭ1和
class
的处理不同,但这已在以后的编译器中得到修复。例如,我没有在VC ++ 2005上收到任何警告。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。