2017-04-21 38 views
0

是合法的做C++中的以下內容:用C數組初始化++中使用數組成員

const T array[3]{ 
    **some expression**, 
    **another expression**, 
    T{ 1 } - array[0] - array[1] 
}; 

換句話說:將第三元素總是被初始化爲1 - **some expression** - **another expression**

回答

2

初始化器列表使用從左到右的評估,但是它在數組初始化之前被評估。

將所述第三元件總是被初始化成1 - 一些表達 - 另一個表達

不,你甚至有UB T{ 1 } - array[0] - array[1]