如何在Xcode中禁用“非限定调用std::move”警告?
解决Xcode中
-Wunqualified-std-cast-call警告的方案 全局项目禁用
- 打开Xcode项目,进入Build Settings面板
- 在搜索栏输入
Other C++ Flags - 将
-Wno-unqualified-std-cast-call添加到Debug或Release对应的字段中(按需选择)
单个文件禁用
若仅需针对当前文件关闭该警告,可在文件头部添加编译指令:
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunqualified-std-cast-call"
如果希望文件后续代码仍触发该警告,可在文件末尾添加恢复指令:
#pragma clang diagnostic pop
代码块级禁用
如果只想在特定代码段关闭警告,用如下方式包裹代码:
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunqualified-std-cast-call" // 使用无限定move的代码 auto target = move(source_obj); #pragma clang diagnostic pop
这个警告是Clang针对无限定调用std::move这类标准转换函数的提示,目的是避免名字查找冲突。但你已经通过using std::move明确引入了标准库版本,风险可控,可根据场景选择上述任意一种禁用方式。
内容的提问来源于stack exchange,提问作者bobobobo
相关产品推荐
相关产品推荐

