跳到主要内容

std::allocator_traits<Alloc>::max_size

自 C++20 起
static constexpr size_type max_size( const Alloc& a ) noexcept;
从 C++11 起,直到 C++20
static size_type max_size( const Alloc& a ) noexcept;

如果可能,通过调用 a.max_size() 从分配器 a 获取理论上可能的最大分配大小。

如果上述操作不可能(例如,Alloc 没有 max_size() 成员函数),则返回 std::numeric_limits<size_type>::max() / sizeof(value_type)

参数

a - 要检测的分配器

返回值

理论最大分配大小。

缺陷报告

以下改变行为的缺陷报告已追溯应用于先前发布的 C++ 标准。

DR应用于发布时的行为正确行为
LWG 2162C++11max_size 不要求是 noexceptrequired
LWG 2466C++11作为备选返回了以字节为单位的理论最大分配大小返回以元素为单位的大小

std::allocator_traits<Alloc>::max_size

自 C++20 起
static constexpr size_type max_size( const Alloc& a ) noexcept;
从 C++11 起,直到 C++20
static size_type max_size( const Alloc& a ) noexcept;

如果可能,通过调用 a.max_size() 从分配器 a 获取理论上可能的最大分配大小。

如果上述操作不可能(例如,Alloc 没有 max_size() 成员函数),则返回 std::numeric_limits<size_type>::max() / sizeof(value_type)

参数

a - 要检测的分配器

返回值

理论最大分配大小。

缺陷报告

以下改变行为的缺陷报告已追溯应用于先前发布的 C++ 标准。

DR应用于发布时的行为正确行为
LWG 2162C++11max_size 不要求是 noexceptrequired
LWG 2466C++11作为备选返回了以字节为单位的理论最大分配大小返回以元素为单位的大小