gpt4 book ai didi

c++ - 如何确保 boost::optional 对象在发布构建中被初始化?

转载 作者:太空狗 更新时间:2023-10-29 20:32:22 26 4
gpt4 key购买 nike

当尝试获取 boost::optional 对象的值时,BOOST_ASSERT 用于确保对象确实已初始化。

但是我希望在取消引用未初始化的可选时抛出异常 - 有没有办法在发布版本中获得此行为?如果没有,是否有任何其他类似的图书馆有这种行为?

我不想每次在取消引用对象之前都使用 is_initialized 方法,而且我还想避免将可选类包装在我自己的类中以获得这种行为。

最佳答案

不幸的是,optional 没有提供这样的选项。 optional 的全部意义在于能够使用重载的 bool 运算符检查值是否存在。

Optional 被设计以允许在函数中抛出异常,而是返回带有值的成功/失败。

也许您应该始终返回一个值,如果失败则将其抛入函数内部?

关于c++ - 如何确保 boost::optional<T> 对象在发布构建中被初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2146106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com