問題:探索std::Optional 中引用類型特化的缺失
在標準C 中,探索std::Optional 提供了一個容器保留一個值或指示其不存在。然而,與 Boost 中的對應項不同,std::Optional 缺乏引用類型的專業化,這給使用者留下了一個問題:為什麼?本文深入探討了這項設計決策背後的原因,並探討了標準庫中可用的替代選項來處理對可選值的引用。
答案:解決問題和未來前景
在關於可選值的初始提案 (n3406) 期間,委員會成員對可選參考提出了擔憂。隨後,在n3527中,作者提出將可選參考文獻分離成輔助提案,以提高可選值被採納的機會。
雖然可選參考文獻由於其他因素沒有被納入C 14中,但並沒有被拒絕委員會。如果提交提案,則有可能將可選引用合併到未來的 C 標準中。
引用可選值的替代方案
儘管沒有std::對於引用類型的可選專業化,標準庫確實提供了引用可選值的替代方法:
總之,缺乏引用類型專業化std::Optional 源自於提案過程中的關切。然而,委員會仍願意考慮未來的可選參考資料。此外,標準函式庫提供了 std::reference_wrapper<:optional>> 作為暫時引用可選值的替代方法。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3