首頁 > 後端開發 > C++ > 為什麼初始化清單不能直接用在 C 運算子的右邊?

為什麼初始化清單不能直接用在 C 運算子的右邊?

Patricia Arquette
發布: 2024-12-23 11:14:14
原創
393 人瀏覽過

Why Can't Initializer Lists Be Directly Used on the Right-Hand Side of C   Operators?

初始化器清單和運算子的右邊

初始化器清單是初始化變數和物件的便利方法,但它們的用途是限制在運算符的右側。這可能令人費解,因為在這種情況下允許初始化器清單似乎是合乎邏輯的。

限制的原因

根據 C 標準,不考慮初始化器列表表達式。由於運算子的參數通常需要表達式,因此禁止使用純初始值設定項清單。

異常

有一些允許使用初始值設定項清單的例外:

  • 作為函數的參數
  • 在下標中表達式
  • 在賦值的右側

基本原理

C 11 標準委員會決定不允許在運算符的左側可簡化解析器的實作。允許它們位於右側而不允許它們位於左側會太不一致。

替代方案

幸運的是,還有其他方法可以使用初始化列表位於運算符的右側。一種選擇是將初始值設定項清單括在括號中,這會將其轉換為右值參考表達式:

另一種選擇是建立適當類型的臨時變數並使用初始值設定項清單對其進行初始化:

雖然這些替代方案可能不如直接使用初始化列表那麼方便,但它們為右側的限制提供了一種解決方法運營商。

以上是為什麼初始化清單不能直接用在 C 運算子的右邊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板