8#ifndef INCLUDED_BSLSTL_TREENODEPOOL
9#define INCLUDED_BSLSTL_TREENODEPOOL
248#include <bslscm_version.h>
264#if BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
268# define COMPILING_BSLSTL_TREENODEPOOL_H
270# undef COMPILING_BSLSTL_TREENODEPOOL_H
289template <
class VALUE,
class ALLOCATOR>
356#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
363 template <
class... Args>
427template <
class VALUE,
class ALLOCATOR>
434template <
class VALUE,
class ALLOCATOR>
443template <
class VALUE,
class ALLOCATOR>
449 d_pool.adopt(MoveUtil::move(lvalue.d_pool));
452template <
class VALUE,
class ALLOCATOR>
460template <
class VALUE,
class ALLOCATOR>
465 return emplaceIntoNewNode(
469#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
470template <
class VALUE,
class ALLOCATOR>
471template <
class... Args>
479 AllocatorTraits::construct(allocator(),
487template <
class VALUE,
class ALLOCATOR>
494 AllocatorTraits::destroy(allocator(),
496 d_pool.deallocate(treeNode);
499template <
class VALUE,
class ALLOCATOR>
504 return emplaceIntoNewNode(
508template <
class VALUE,
class ALLOCATOR>
514 d_pool.reserve(numNodes);
517template <
class VALUE,
class ALLOCATOR>
524 d_pool.swap(other.d_pool);
527template <
class VALUE,
class ALLOCATOR>
532 d_pool.quickSwapExchangeAllocators(other.d_pool);
535template <
class VALUE,
class ALLOCATOR>
542 d_pool.quickSwapRetainAllocators(other.d_pool);
546template <
class VALUE,
class ALLOCATOR>
554template <
class VALUE,
class ALLOCATOR>
558 return d_pool.hasFreeBlocks();
Definition bslalg_rbtreenode.h:376
Definition bslma_deallocatorproctor.h:312
void release()
Definition bslma_deallocatorproctor.h:384
Definition bslmf_movableref.h:751
Definition bslstl_simplepool.h:292
Types::AllocatorType AllocatorType
Definition bslstl_simplepool.h:341
AllocatorType & allocator()
Definition bslstl_simplepool.h:573
Types::AllocatorTraits AllocatorTraits
Definition bslstl_simplepool.h:345
Definition bslstl_treenodepool.h:290
void reserveNodes(size_type numNodes)
Definition bslstl_treenodepool.h:510
void adopt(bslmf::MovableRef< TreeNodePool > pool)
Definition bslstl_treenodepool.h:446
AllocatorTraits::size_type size_type
Alias for the size_type of the allocator defined by SimplePool.
Definition bslstl_treenodepool.h:318
bslalg::RbTreeNode * moveIntoNewNode(bslalg::RbTreeNode *original)
Definition bslstl_treenodepool.h:502
Pool::AllocatorType AllocatorType
Alias for the allocator type defined by SimplePool.
Definition bslstl_treenodepool.h:315
void swap(TreeNodePool &other)
Definition bslstl_treenodepool.h:519
AllocatorType & allocator()
Definition bslstl_treenodepool.h:455
bslalg::RbTreeNode * emplaceIntoNewNode(Args &&... args)
Definition bslstl_treenodepool.h:474
void swapExchangeAllocators(TreeNodePool &other)
Definition bslstl_treenodepool.h:529
void deleteNode(bslalg::RbTreeNode *node)
Definition bslstl_treenodepool.h:489
bool hasFreeNodes() const
Definition bslstl_treenodepool.h:556
bslalg::RbTreeNode * cloneNode(const bslalg::RbTreeNode &original)
Definition bslstl_treenodepool.h:462
void swapRetainAllocators(TreeNodePool &other)
Definition bslstl_treenodepool.h:537
Definition bslstl_treenode.h:393
VALUE & value()
Definition bslstl_treenode.h:429
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1804
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_COMPILERFEATURES_FORWARD(T, V)
Definition bsls_compilerfeatures.h:2018
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_UTIL_ADDRESSOF(OBJ)
Definition bsls_util.h:289
Definition bslstl_algorithm.h:82
Definition bslmf_movableref.h:791