gpt4 book ai didi

c++ - 符合标准的自定义分配器

转载 作者:可可西里 更新时间:2023-11-01 18:21:38 25 4
gpt4 key购买 nike

allocate 方法传入 0 是否可以抛出异常?

谢谢。

附言

If n == 0, the return value is unspecified.

这是否意味着 allocate 不应该抛出异常?我倾向于认为,如果 n==0 不允许抛出,那么标准会清楚地说明这一点。

最佳答案

所有标准必须说明的 (§20.1.5/2) 都是给定的

  • T – 任何类型
  • X – 类型 T
  • Allocator
  • aX&
  • 类型的值
  • nX::size_type 类型的值,

如果 n 等于 0,则表达式 a.allocate(n) 的返回值未指定

一方面,考虑到 X::allocate 没有任何强制性异常规范并且显式可能抛出 std::bad_alloc ,我不明白为什么它也不能抛出其他类型的异常。另一方面,该措辞特别指出了 n 等于零的条件,并直接暗示有一个返回值,这意味着您不应该 扔。我认为它可能有一些解释,但我个人倾向于后者并认为它是一个普通的代码路径。

关于c++ - 符合标准的自定义分配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6065814/

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