c++ - GCC 可以像 VS 一样产生结构/类名不匹配吗?

标签 c++ visual-studio gcc

我想让 GCC 发出警告,当 VisualStudio 发现一个名称已用 classstruct 声明时,它会发出警告。 (警告 4099)这通常是由前向声明引起的,例如:

struct Base;
...
class Base { ... };

在这种情况下,VS 实际上无法链接,因此我已将警告升级为错误。由于这个项目是跨平台的,我还想在使用 GCC 编译时发现这个问题——否则我可能会不小心 checkin 在 VS 中无法运行的代码。

是否有任何开关或方法可以让 GCC 也拒绝或警告此类类/结构声明不匹配?

注意:从评论来看,不确定这个警告是否合法。对于我的问题,它不相关,因为条件导致 VisualStudio 中的链接失败(我不能忽略警告)。因此,我只想找出使用​​ GCC 的问题,这样我的 Windows 编译就不会突然停止工作。

最佳答案

从版本 10 开始,gcc 也像 clang 一样提供了 -Wmismatched-tags 标志 https://stackoverflow.com/a/66640473/2436175

关于c++ - GCC 可以像 VS 一样产生结构/类名不匹配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712514/

相关文章:

C++ std::string 语法 "new (&y) std::string(x);"

c++ - 理解字符引用

visual-studio - 如何在标签搜索 - Dynamics 365 中搜索其他语言的标签?

visual-studio - Visual Studio : Varying tab width/options by . VCPROJ 或 .SLN 文件?

c++ - Visual Studio 2010 : Working with multiple C++ projects

C getline 在换行后继续接受输入

c++ - Windows 生物识别服务在调用 WinBioCaptureSample 时循环运行 SensorAdapterStartCapture

c++ - 预编译标准库头文件 - C++

c++ - 我可以让 gcc 链接器创建一个静态库吗?

c++ - g++ : should --std option change which STL/stdlib my code uses?