Xcode 6.3(测试版)给了我新的警告,任何建议如何解决这个问题?我不认为把这个检查完全删除是一个正确的答案,因为在某些情况下,“相机”已经为NULL,并在其他地方导致崩溃。如何解决“引用不能绑定到解除引用空指针”警告
在定义明确的C++代码中引用不能绑定到解除引用的空指针;可以假定比较始终评估为假
以下是代码。我还能如何验证相机存在?
Camera& camera = sceneEngine->camera();
// FIXME: this triggers an undefined-bool-conversion warning in Xcode 6.3 BETA
if (&camera == NULL) return;
而且从SceneEngine相关的方法:
// HEADER
class SceneEngine
{
public:
Camera& camera();
protected:
Camera camera_;
}
// CPP
Camera& SceneEngine::camera() {
return camera_;
}
如果你有一个'相机&',然后将相机存在或您有未定义的行为。没有但是。 – immibis 2015-02-24 06:22:31
所以你建议摆脱警告,我应该删除检查和处理崩溃(相机为NULL时)以某种其他方式? – JOM 2015-02-24 06:26:49
引用永远不应该是NULL,它们总是指向一个实际的对象,除非你像在R Sahu的回答中所证明的那样在地址0处强制一个对象存在的地方调用未定义的行为。这个断言不应该在那里,或者你应该使用指针来代替。 – Havenard 2015-02-24 06:28:24