在 C 程式設計領域,出現了一個有趣的問題:對 const 類別類型的右值引用有什麼用處嗎?雖然人們一開始可能會認為它們是多餘的,但仔細檢查就會發現它們偶爾有用。
C 0x 語言標準草稿提供了它們的應用範例。兩個函數模板 ref 和 cref 定義如下:
template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;
這些重載有一個關鍵目的:防止使用右值呼叫其他 ref(T&) 和 cref(const T&) 函數。如果未定義對 const 的右值引用,則這是可能的。
更新:
根據官方 C 標準(N3290)的進一步檢查,相同的函數模板出現在第 20.8 節 [function.objects]/p2 中。此外,最新的 post-C 11 草稿 (N3485) 也在同一位置包含這些範本。
以上是Const Rvalue 引用在 C 中什麼時候有用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!