首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++关键字——noexcept

并提出了关键字noexcept用于指明函数保证自己不会发生异常。 用法 noexcept既可以表征普通函数不发射异常,也可以用于表征成员函数不发射异常。...,那么noexcept是如何保证的呢?...注意事项 只有在时间维度上恒为不发射异常的函数才可标注为noexcept,否则不要做出该函数noexcept的假设。...如果函数标注为noexcept,则该函数调用的所有函数应也是noexcept,否则不要做出该函数noexcept的假设。尽管noexcept调用非noexcept函数会通过编译但不推荐这样做。...释放内存的函数和析构函数默认为noexcept, 补充 noexcept可以作为操作符,用于检测函数是否被标记为noexcept,使用代码如下: void no_exception()noexcept

12310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C++ 中文周刊 2024-08-18 第166期

    consume(not_null) */ 感谢anms nugine ni fvs zwuis 讨论 godbolt https://godbolt.org/z/fbqEa4M1r noexcept.../ 使用noexcept需要保证没有异常,否则生成的代码代价更高 通常来说noexcept是给move用的 另外有一个搞笑的场景 noexcept affects libstdc++’s unordered_set...https://quuxplusone.github.io/blog/2024/08/16/libstdcxx-noexcept-hash/ libstdc++的 unordered set 对于noexcept...限定 针对hash函数有特化 如果hash函数是noexcept 认为函数计算很轻,不额外保存key hash,否则会缓存key hash加速 这就导致一个尴尬的场景,对于int,这种优化是对的,对于string...hash接口使用noexcept会弄巧成拙速度更慢 标准库对于noexcept限定应该给用户端保留余地,不要影响效果,如果影响,最好给出api约定,比如transparent compare 这种莫名其妙的限制很坑

    16510
    领券