问题:探索 std::Optional 中引用类型特化的缺失
在标准 C 中, std::Optional 提供了一个容器保留一个值或指示其不存在。然而,与 Boost 中的对应项不同,std::Optional 缺乏引用类型的专业化,这给用户留下了一个问题:为什么?本文深入探讨了这一设计决策背后的原因,并探讨了标准库中可用的替代选项来处理对可选值的引用。
答案:解决问题和未来前景
在关于可选值的初始提案 (n3406) 期间,委员会成员对可选参考提出了担忧。随后,在n3527中,作者提出将可选参考文献分离成辅助提案,以提高可选值被采纳的机会。
虽然可选参考文献由于其他因素没有被纳入C 14中,但并没有被拒绝委员会。如果提交提案,则有可能将可选引用合并到未来的 C 标准中。
引用可选值的替代方案
尽管没有 std::引用类型的可选专门化,标准库确实提供了引用可选的替代方法value:
总之,缺乏引用类型专业化std::Optional 源于提案过程中的担忧。然而,委员会仍然愿意考虑未来的可选参考资料。此外,标准库提供了 std::reference_wrapper<:optional>> 作为临时引用可选值的替代方法。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3