[英]C++ constant temporary lifetime
如果这样的代码是正确的(根据标准),你能告诉我:
struct array {
int data[4];
operator const int*() const { return data; }
};
void function(const int*) { ... }
function(array()); // is array data valid inside function?
谢谢
是。 临时对象有效,直到创建它的完整表达式结束; 也就是说,直到函数调用返回之后。
我手边没有我的标准副本,所以我不能给出确切的参考; 但它在C ++ 0x最终草案的 12.2中。
是。 Temporaries有效,直到创建它们的完整表达式结束。 因此无名数组临时在function
调用返回之前是有效的,因此它的data
成员也是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.