[#BloombergLP-bdlma-ConcurrentPoolAllocator-2constructor-00fc] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlma.adoc[bdlma]::xref:BloombergLP/bdlma/ConcurrentPoolAllocator.adoc[ConcurrentPoolAllocator]::ConcurrentPoolAllocator :relfileprefix: ../../../ :mrdocs: Constructors == Synopses Declared in `<bdlma_concurrentpoolallocator.h>` Create a pool allocator that returns blocks of contiguous memory of uniform size for each `allocate` method invocation, where the size is determined by the first invocation of `allocate`. Optionally specify a `growthStrategy` used to control the growth of internal memory chunks (from which memory blocks are dispensed). If `growthStrategy` is not specified, geometric growth is used. If `growthStrategy` is specified, optionally specify a `maxBlocksPerChunk`, indicating the maximum number of blocks to be allocated at once when the underlying pool must be replenished. If `maxBlocksPerChunk` is not specified, an implementation‐defined value is used. If geometric growth is used, the chunk size grows starting at the value returned by `blockSize`, doubling in size until the size is exactly `blockSize() * maxBlocksPerChunk`. If constant growth is used, the chunk size is always `maxBlocksPerChunk`. Optionally specify a `basicAllocator` used to supply memory. If `basicAllocator` is 0, the currently installed default allocator is used. The behavior is undefined unless `1 <= maxBlocksPerChunk`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-009.adoc[ConcurrentPoolAllocator](xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-009.adoc[_» more..._]# Same as the preceding overload, with the specified `growthStrategy`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-05.adoc[ConcurrentPoolAllocator]( xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-05.adoc[_» more..._]# Create a pool allocator that returns blocks of contiguous memory of the specified `blockSize` (in bytes) for each `allocate` method invocation. Optionally specify a `growthStrategy` used to control the growth of internal memory chunks (from which memory blocks are dispensed). If `growthStrategy` is not specified, geometric growth is used. If `blockSize` and `growthStrategy` are specified, optionally specify a `maxBlocksPerChunk`, indicating the maximum number of blocks to be allocated at once when the underlying pool must be replenished. If `maxBlocksPerChunk` is not specified, an implementation‐defined value is used. If geometric growth is used, the chunk size grows starting at `blockSize`, doubling in size until the size is exactly `blockSize * maxBlocksPerChunk`. If constant growth is used, the chunk size is always `maxBlocksPerChunk`. Optionally specify a `basicAllocator` used to supply memory. If `basicAllocator` is 0, the currently installed default allocator is used. The behavior is undefined unless `1 <= maxBlocksPerChunk`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-01.adoc[ConcurrentPoolAllocator]( xref:BloombergLP/bdlma/ConcurrentPoolAllocator/size_type.adoc[size_type] blockSize, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-01.adoc[_» more..._]# Same as the preceding overload, with the specified `maxBlocksPerChunk`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-00f7.adoc[ConcurrentPoolAllocator]( xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy, int maxBlocksPerChunk, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-00f7.adoc[_» more..._]# Same as the preceding overload, with the specified `growthStrategy`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-0a.adoc[ConcurrentPoolAllocator]( xref:BloombergLP/bdlma/ConcurrentPoolAllocator/size_type.adoc[size_type] blockSize, xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-0a.adoc[_» more..._]# Same as the preceding overload, with the specified `maxBlocksPerChunk`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-03.adoc[ConcurrentPoolAllocator]( xref:BloombergLP/bdlma/ConcurrentPoolAllocator/size_type.adoc[size_type] blockSize, xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy, int maxBlocksPerChunk, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/ConcurrentPoolAllocator/2constructor-03.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#