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

Constructors

== Synopses

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

Create a sequential pool for allocating memory blocks from a sequence of dynamically&hyphen;allocated buffers, of which the initial buffer has the specified `initialSize` (in bytes)&period; Optionally specify a `basicAllocator` used to supply memory for the dynamically&hyphen;allocated buffers&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Optionally specify a `growthStrategy` used to control buffer growth&period; If no `growthStrategy` is specified, geometric growth is used&period; Optionally specify an `alignmentStrategy` used to control alignment of allocated memory blocks&period; If no `alignmentStrategy` is specified, natural alignment is used&period; By specifying an `initialSize`, the construction of a sequential pool will incur a memory allocation&period; The behavior is undefined unless `0 &lt; initialSize`&period; 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 `initialSize`&period; Also note that `SequentialPool(int initialSize)` is provided to avoid ambiguous definitions&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlma/SequentialPool/2constructor-04.adoc[SequentialPool](int initialSize);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-04.adoc[_» more&period;&period;&period;_]#

Create a sequential pool for allocating memory blocks from a sequence of dynamically&hyphen;allocated buffers&period; Optionally specify a `basicAllocator` used to supply memory for the dynamically&hyphen;allocated buffers&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Optionally specify a `growthStrategy` used to control buffer growth&period; If no `growthStrategy` is specified, geometric growth is used&period; Optionally specify an `alignmentStrategy` used to control alignment of allocated memory blocks&period; If no `alignmentStrategy` is specified, natural alignment is used&period; An implementation&hyphen;defined value is used as the initial size of the internal buffer&period; 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 the implementation&hyphen;defined value&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlma/SequentialPool/2constructor-0e9.adoc[SequentialPool](xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-0e9.adoc[_» more&period;&period;&period;_]#

Create a sequential pool using the specified alignment strategy&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlma/SequentialPool/2constructor-0f.adoc[SequentialPool](
    xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-0f.adoc[_» more&period;&period;&period;_]#

Create a sequential pool using the specified growth strategy&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlma/SequentialPool/2constructor-0a.adoc[SequentialPool](
    xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-0a.adoc[_» more&period;&period;&period;_]#

Create a sequential pool whose initial buffer has the specified `initialSize`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bdlma/SequentialPool/2constructor-06.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-06.adoc[_» more&period;&period;&period;_]#

Create a sequential pool using the specified growth and alignment strategies and an implementation&hyphen;defined initial buffer size&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-015.adoc[SequentialPool](
    xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy,
    xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-015.adoc[_» more&period;&period;&period;_]#

Create a sequential pool whose initial buffer has the specified `initialSize` and alignment strategy&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-01e.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-01e.adoc[_» more&period;&period;&period;_]#

Create a sequential pool whose initial buffer has the specified `initialSize` and growth strategy&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-0e6.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-0e6.adoc[_» more&period;&period;&period;_]#

Create a sequential pool for allocating memory blocks from a sequence of dynamically&hyphen;allocated buffers, of which the initial buffer has the specified `initialSize` (in bytes), and the internal buffer growth is limited to the specified `maxBufferSize`&period; Optionally specify a `basicAllocator` used to supply memory for the dynamically&hyphen;allocated buffers&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; Optionally specify a `growthStrategy` used to control buffer growth&period; If no `growthStrategy` is specified, geometric growth is used&period; Optionally specify an `alignmentStrategy` used to control alignment of allocated memory blocks&period; If no `alignmentStrategy` is specified, natural alignment is used&period; The behavior is undefined unless `0 &lt; initialSize` and `initialSize &lt;&equals; maxBufferSize`&period; Note that when constant growth is used, the size of the internal buffers will always be the same as `initialSize`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-0c.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] maxBufferSize,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-0c.adoc[_» more&period;&period;&period;_]#

Create a sequential pool whose initial buffer has the specified `initialSize`, growth strategy, and alignment strategy&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-02c.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy,
    xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-02c.adoc[_» more&period;&period;&period;_]#

Create a sequential pool with growth limited to `maxBufferSize` and the specified alignment strategy&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-0253.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] maxBufferSize,
    xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-0253.adoc[_» more&period;&period;&period;_]#

Create a sequential pool with growth limited to `maxBufferSize` and the specified growth strategy&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-09.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] maxBufferSize,
    xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-09.adoc[_» more&period;&period;&period;_]#

Create a sequential pool with growth limited to `maxBufferSize` and the specified growth and alignment strategies&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-01d.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] maxBufferSize,
    xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy,
    xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-01d.adoc[_» more&period;&period;&period;_]#

Create a sequential pool for allocating memory blocks from a sequence of dynamically&hyphen;allocated buffers, of which the initial buffer has the specified `initialSize` (in bytes), the internal buffer growth is limited to the specified `maxBufferSize`, the specified `growthStrategy` is used to control buffer growth, and the specified `alignmentStrategy` is used to control alignment of allocated memory blocks&period; Allocate the initial buffer only if the specified `allocateInitialBuffer` is `true`&period; Optionally specify a `basicAllocator` used to supply memory for the dynamically&hyphen;allocated buffers&period; If `basicAllocator` is 0, the currently installed default allocator is used&period; The behavior is undefined unless `0 &lt; initialSize` and `initialSize &lt;&equals; maxBufferSize`&period; Note that when constant growth is used, the size of the internal buffers will always be the same as `initialSize`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/bdlma/SequentialPool/2constructor-0b.adoc[SequentialPool](
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] initialSize,
    xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size&lowbar;type] maxBufferSize,
    xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy,
    xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy,
    bool allocateInitialBuffer,
    xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0);
----

[.small]#xref:BloombergLP/bdlma/SequentialPool/2constructor-0b.adoc[_» more&period;&period;&period;_]#


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