繁体   English   中英

C ++常量临时生命周期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM