首頁 >後端開發 >C++ >為什麼 C 二元運算子參數中的初始化列表受到限制?

為什麼 C 二元運算子參數中的初始化列表受到限制?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-12 16:12:14647瀏覽

Why Are Initializer Lists Restricted in C   Binary Operator Arguments?

運算子參數中的初始化器列表

在運算子的右側(RHS)使用初始化器列表,這是C 11 ,提出了有關此限制背後的推理的問題。

C 標準禁止直接在二元運算子的右側使用初始化列表,例如「 」、「*」或「

為了方便初始化器清單的使用,該標準引入了例外。然而,二元運算子沒有這樣的例外,使得初始化列表在兩側都受到限制。

Stroustrup 和 Dos Reis (2007) 在 N2215 中解釋了這個限制背後的決定。允許初始值設定項清單作為左側運算元會導致解析衝突,因為初始值設定項清單和區塊都使用大括號。

此外,僅允許在右側而不是兩側的初始值設定項清單被視為造成過度的不一致。因此,在某些上下文中允許使用初始值設定項列表,例如函數參數、下標和賦值,但在二元運算子參數的一般情況下不允許使用。

以上是為什麼 C 二元運算子參數中的初始化列表受到限制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn