GCC 和 MSVC 警告之间是否有任何良好的映射?例如,MSVC 上的 -Wredundant-move

Are there any good mappings between GCC and MSVC warnings? E.g. -Wredundant-move on MSVC

提问人:Cascades 提问时间:5/6/2022 更新时间:5/6/2022 访问量:256

问:

这个问题在某种程度上是双重的,一个比另一个更普遍。具体问题是;MSVC 是否具有等效的警告?更一般地说,是否有任何地方在线,即使是某人的博客,在 GCC 和 MSVC 警告之间有合理的映射?-Wredundant-move

我知道警告没有任何跨平台相似的要求,甚至根本不存在 - 这就是为什么我有兴趣了解是否存在任何合理的相关性?

对于一些背景知识,我希望在跨平台项目上启用特定的 s,并且希望每个平台都遵循大致相同的警告,而不是依赖用户手动检查两个平台。-Werror

C GCC Visual-C++ 警告

评论


答:

4赞 Ted Lyngmo 5/6/2022 #1

具体问题是;MSVC 是否具有等效的警告?-Wredundant-move

据我所知,不,MSVC 没有。

这隐式回答了更一般的问题,即 gcc 和 MSVC 警告之间是否存在良好的映射。

但是 - 对于您询问的特定类型的警告,未来看起来很有希望: 审核中 - 悲观移动编译器警告

“LLVM 支持pessimizing-move编译器警告。在 C++17 及更高版本中,当在临时变量上调用 std::move() 时会触发,这会导致临时变量上不会发生复制省略。这似乎是一个高价值的警告,在 Clang++ 和 GCC 中受支持,但不支持 MSVC

评论

0赞 Cascades 5/6/2022
感谢您快速而完整的看似答案。我可以等着看是否有其他人认为他们知道秘密编译器选项(请参阅第一个链接“并非每个 Visual Studio 错误或警告都已记录”中的警告页面之一),但您的回答确实与我的发现和怀疑一致,这对我来说已经足够了。
3赞 Ted Lyngmo 5/6/2022
@Cascades 不客气!...而且,是的,在搜索时找不到“MSVC 警告的完整列表”有点令人沮丧。我敢肯定它在某个地方,但我没有找到它。我希望我的答案在几个版本中变得“错误”:-)