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