[#BloombergLP-bdlma-BufferedSequentialPool-2constructor-06]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlma.adoc[bdlma]::xref:BloombergLP/bdlma/BufferedSequentialPool.adoc[BufferedSequentialPool]::BufferedSequentialPool
:relfileprefix: ../../../
:mrdocs:

Create a buffered sequential pool backed by the specified `buffer`&period;

== Synopsis

Declared in `&lt;bdlma&lowbar;bufferedsequentialpool&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
BufferedSequentialPool(
    char* buffer,
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] size,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

== Description

Create a buffered sequential pool for allocating memory blocks from the specified external `buffer` having the specified `size` (in bytes), or from an internal buffer (after the external `buffer` is exhausted)&period; Optionally specify a `growthStrategy` used to control buffer growth&period; If a `growthStrategy` is not specified, geometric growth is used&period; Optionally specify an `alignmentStrategy` used to align allocated memory blocks&period; If an `alignmentStrategy` is not specified, natural alignment is used&period; Optionally specify a `basicAllocator` used to supply memory should the capacity of `buffer` be exhausted&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt; size`, and `buffer` has at least `size` bytes&period; Note that, due to alignment effects, it is possible that not all `size` bytes of memory in `buffer` can be used for allocation&period; Also note that no limit is imposed on the size of the internal buffers when geometric growth is used&period; Also note that when constant growth is used, the size of the internal buffers will always be the same as `size`&period;


[.small]#Created with https://www.mrdocs.com[MrDocs]#
