项目设置推荐编译器警告:"可疑移动"

时间:2016-12-19 18:48:45

标签: c++ xcode compiler-warnings

在Xcode项目中,我收到了一个奇怪的警告。它是什么,是一件坏事?

这是警告:

  

Project' Little Hoot' - 启用推荐警告   这将启用以下建议的编译器警告:

  • 可疑移动

它也建议我更新另一个设置。

  

目标' Little Hoot' - 更新C ++标准库   ' libstdc ++'不推荐使用C ++标准库。这将更新Target' Little Hoot'到编译器默认值',这是推荐值。

我已经在线查看,至少在第一次警告时我找不到答案。

Screenshot

5 个答案:

答案 0 :(得分:4)

“可疑移动”项目/目标设置似乎控制LLVM / Clang中的-Wmove编译器警告选项,该选项包含3个其他警告选项:-Wpessimizing-move-Wredundant-move-Wself-move

这些选项会产生以下警告:

warning: moving a temporary object prevents copy elision
warning: moving a local object in a return statement prevents copy elision
warning: redundant move in return statement
warning: explicitly moving variable of type A to itself

(来自http://clang.llvm.org/docs/DiagnosticsReference.html的Clang文档)

因此,无论您接受建议并启用警告,还是没有警告,这可能都不是什么大问题。你不会被告知你是否因为这些可疑动作而变慢了。

答案 1 :(得分:0)

我最近在设置新项目时也收到了来自Xcode的消息。我的步骤是从文件中删除引用(例如Info.plist),直接在Finder上创建文件夹,以及将文件添加回Xcode。我想这是一个安全功能,但如果你的情况与我的情况一样,那只是一个警告。

答案 2 :(得分:0)

这两个警告都指的是项目中的设置未反映建议的默认值。在升级您的Xcode版本或将旧项目导入更高版本的Xcode之后,它们可能都被触发了。

除非您有充分理由不这样做,否则最好遵循建议。最简单的方法是单击警告旁边的黄色三角形,并允许Xcode对设置进行适当的更改。

答案 3 :(得分:0)

除了迂腐警告,未使用的参数和自动合成属性外,您应该打开所有警告;这三个警告警告了大量良好的代码。静态分析器警告也是如此。

然后你看看你得到了什么警告并修复它们。如果您之前没有这样做,那么我估计所有警告中有20-40%是您代码中的实际错误。

答案 4 :(得分:0)

您将能够see warning detail in issue navigator section。您可以通过选择问题来解决问题。这将显示一条警告,说明要在项目设置中进行必要的更改。

点击执行更改按钮。这将在项目设置中进行必要的更改,从而删除此警告。