即使存在覆盖,Wsuggest-overject 也会引发警告

Wsuggest-override raise warning even if override is present

本文关键字:警告 Wsuggest-overject 存在 覆盖      更新时间:2023-10-16

我目前正在尝试将所有缺少的覆盖添加到项目中,所以我使用Wsuggest-override。

从文档:

-建议覆盖

警告覆盖未标有覆盖> 关键字的虚拟函数。

但是,它会对所有应使用 override 关键字的函数发出警告,即使关键字实际上存在

从日志:

In file included from LdBitFieldProperty.cpp:16:0:
LdBitFieldProperty.h:47:29: warning: ‘virtual std::__cxx11::string LdBitFieldProperty::GetStringValue(size_t) const’ can be marked override [-Wsuggest-override]
         virtual std::string GetStringValue( size_t aIndex = 0 ) const override;

我是否缺少有关此警告用法的某些内容?

我的 GCC 是 : gcc version 6.4.1 20170727 (Red Hat 6.4.1-1) (GCC)

对不起,这是一个愚蠢的问题,有一个删除覆盖关键字#define override,因为该项目曾经与 Linux 平台兼容 C++99。

删除定义解决了问题。