簡體   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