[mem.res.pool.options]

# 20 Memory management library [[mem]](./#mem)

## 20.5 Memory resources [[mem.res]](mem.res#pool.options)

### 20.5.5 Pool resource classes [[mem.res.pool]](mem.res.pool#options)

#### 20.5.5.2 pool_options data members [mem.res.pool.options]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/memory.tex#L8195)

The members of pool_options comprise a set of constructor options for pool resources[.](#1.sentence-1)

The effect of each option on the pool resource behavior is described below:

[ð](#lib:pool_options,max_blocks_per_chunk)

`size_t max_blocks_per_chunk;
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/memory.tex#L8206)

The maximum number of blocks that will be allocated at once
from the upstream memory resource ([[mem.res.monotonic.buffer]](mem.res.monotonic.buffer "20.5.6 Class monotonic_­buffer_­resource"))
to replenish a pool[.](#2.sentence-1)

If the value of max_blocks_per_chunk is zero or
is greater than an implementation-defined
limit, that limit is used instead[.](#2.sentence-2)

The implementation
may choose to use a smaller value than is specified in this member and
may use different values for different pools[.](#2.sentence-3)

[ð](#lib:pool_options,largest_required_pool_block)

`size_t largest_required_pool_block;
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/memory.tex#L8224)

The largest allocation size that is required to be fulfilled
using the pooling mechanism[.](#3.sentence-1)

Attempts to allocate a single block larger than this threshold
will be allocated directly from the upstream memory resource[.](#3.sentence-2)

If largest_required_pool_block is zero or
is greater than an implementation-defined
limit, that limit is used instead[.](#3.sentence-3)

The implementation may choose a pass-through threshold
larger than specified in this member[.](#3.sentence-4)
