給定以下代碼(它編譯成功):
int main(void)
{
const int a{};
const int &r = a;
static int arr[1] = {r};
constexpr const int &ref = arr[0]; // OK
}
的初始化ref是指定參考的glvalue ref。所以初始化的完整運算式必須是一個glvalue核心常量運算式。也就是說,參考ref必須參考一個物體,該物體是常量運算式的允許結果(具有靜態存盤持續時間的物件)。它指的arr[0]是 type的元素int。這是我的問題:這個元素是具有靜態存盤持續時間的子物件嗎?如果是,那么說明的措辭是什么?
uj5u.com熱心網友回復:
這是我的問題:這個元素是具有靜態存盤持續時間的子物件嗎?
[basic.stc.inherit]/1說:
子物件和參考成員的存盤時間是它們完整物件的存盤時間。
陣列元素是它所在的陣列的子物件。因此它與陣列具有相同的存盤持續時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/514914.html
標籤:C 数组静止的语言律师
