gpt4 book ai didi

c++ - 自包含应用程序中的异常安全

转载 作者:行者123 更新时间:2023-11-28 07:47:46 24 4
gpt4 key购买 nike

在自包含应用程序(与库相对)中,我被引导相信就异常安全而言,目标应该是“始终提供 basic guarantee”。

这听起来合理吗?我们是否应该只担心在有助于实现该目标的地方提供强有力的保证?

最佳答案

您的目标是尽可能提供最强大的异常安全性,并且只有在必须时才降低它,或者如果不降低它会很昂贵。

您可以提供的最好的异常安全是 nothrow,但这显然很难始终避免。有一些地方您的代码应该抛出异常,否则您只是在一般情况下避免异常。

接下来,您应该努力争取强有力的保证,但这可能实现起来代价高昂。它通常需要制作过多的临时拷贝,以确保在您的函数运行期间不会影响任何可观察到的状态。

至少,您应该提供基本保证。确保这通常并不昂贵,因为您只是确保没有泄漏。智能指针类型可以帮助你。这并不意味着基本保证不好,但如果你能做得更好,你应该做得更好。

也许将目标写成“提供至少自始至终的基本保证,但力争获得最好的保证”会更好。

关于c++ - 自包含应用程序中的异常安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14548024/

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