0
根據ISO/IEC 14882:2011,我們不能使用拋表達式都在三元運算的第二個和第三個操作數:擲表達式在三元運算
5.16條件運算符[expr.cond]
2如果第二或第三操作數的類型爲無效,則 左值到右值(4.1),陣列到指針(4.2),和 功能到指針(4.3)標準轉換在 第二個和第三個操作數上執行,並且下列之一應爲: - 第二個或第三個操作數的 (但不是兩個)都是投擲表達式 (15.1);結果是另一種的類型,是一個價值。 - 第二個和第三個操作數都有void類型;結果是void類型的 ,並且是一個prvalue。 [注意:這包括 這兩個操作數都是throw-expressions的情況。 - 注意]
爲什麼Comeo編譯器和gcc都允許這樣的代碼?
int main()
{
true ? throw 0 : throw 1;
}
我們可以扔課嗎?也許是一個文件?我的意思是文件的變量:) –
@tuğrulbüyükışık - 你不能扔課。你可以拋出**類的**對象**。 –