我在很多平台上开发,今天我的iOS和xCode有问题, 我正在将一些项目升级到最后一个xCode 4.3.2(Apple LLVM编译器3.1)
因为很少时间警告已成为错误:“获取临时对象的地址”
不幸的是我使用了很多,见我的例子:
float dist = Vector3Dlength(&Vector3D(pos2 - pos1));
有人建议在不编辑代码的情况下避免此错误吗? (使用新的xCode 4.3.2(Apple LLVM编译器3.1))
答案 0 :(得分:2)
您需要更改代码,不能获取非左值的地址,而且临时不是。
更改代码,将const引用改为Vector3D
。这不会花费您的副本,并且是明确定义的行为。
float Vector3Dlength(Vector3D const& pvect) {
return sqrt(pvect.x * pvect.x ...);
}
...
float dist = Vector3Dlength(Vector3D(pos2 - pos1));