8#ifndef INCLUDED_BSLSTL_TREENODEPOOL
9#define INCLUDED_BSLSTL_TREENODEPOOL
249#include <bslscm_version.h>
265#if BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
271# define COMPILING_BSLSTL_TREENODEPOOL_H
273# undef COMPILING_BSLSTL_TREENODEPOOL_H
294template <
class VALUE,
class ALLOCATOR>
364#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
371 template <
class... Args>
441template <
class VALUE,
class ALLOCATOR>
448template <
class VALUE,
class ALLOCATOR>
457template <
class VALUE,
class ALLOCATOR>
463 d_pool.adopt(MoveUtil::move(lvalue.d_pool));
466template <
class VALUE,
class ALLOCATOR>
474template <
class VALUE,
class ALLOCATOR>
479 return emplaceIntoNewNode(
483#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
484template <
class VALUE,
class ALLOCATOR>
485template <
class... Args>
493 AllocatorTraits::construct(allocator(),
501template <
class VALUE,
class ALLOCATOR>
508 AllocatorTraits::destroy(allocator(),
510 d_pool.deallocate(treeNode);
513template <
class VALUE,
class ALLOCATOR>
518 return emplaceIntoNewNode(
522template <
class VALUE,
class ALLOCATOR>
528 d_pool.reserve(numNodes);
531template <
class VALUE,
class ALLOCATOR>
538 d_pool.swap(other.d_pool);
541template <
class VALUE,
class ALLOCATOR>
546 d_pool.quickSwapExchangeAllocators(other.d_pool);
549template <
class VALUE,
class ALLOCATOR>
556 d_pool.quickSwapRetainAllocators(other.d_pool);
560template <
class VALUE,
class ALLOCATOR>
568template <
class VALUE,
class ALLOCATOR>
572 return d_pool.hasFreeBlocks();
Definition bslalg_rbtreenode.h:377
Definition bslma_deallocatorproctor.h:312
void release()
Definition bslma_deallocatorproctor.h:389
Definition bslmf_movableref.h:752
Definition bslstl_simplepool.h:294
Types::AllocatorType AllocatorType
Definition bslstl_simplepool.h:343
AllocatorType & allocator()
Definition bslstl_simplepool.h:586
Types::AllocatorTraits AllocatorTraits
Definition bslstl_simplepool.h:347
Definition bslstl_treenodepool.h:295
void reserveNodes(size_type numNodes)
Definition bslstl_treenodepool.h:524
void adopt(bslmf::MovableRef< TreeNodePool > pool)
Definition bslstl_treenodepool.h:460
AllocatorTraits::size_type size_type
Alias for the size_type of the allocator defined by SimplePool.
Definition bslstl_treenodepool.h:323
bslalg::RbTreeNode * moveIntoNewNode(bslalg::RbTreeNode *original)
Definition bslstl_treenodepool.h:516
Pool::AllocatorType AllocatorType
Alias for the allocator type defined by SimplePool.
Definition bslstl_treenodepool.h:320
void swap(TreeNodePool &other)
Definition bslstl_treenodepool.h:533
AllocatorType & allocator()
Definition bslstl_treenodepool.h:469
bslalg::RbTreeNode * emplaceIntoNewNode(Args &&... args)
Definition bslstl_treenodepool.h:488
void swapExchangeAllocators(TreeNodePool &other)
Definition bslstl_treenodepool.h:543
void deleteNode(bslalg::RbTreeNode *node)
Definition bslstl_treenodepool.h:503
bool hasFreeNodes() const
Definition bslstl_treenodepool.h:570
bslalg::RbTreeNode * cloneNode(const bslalg::RbTreeNode &original)
Definition bslstl_treenodepool.h:476
void swapRetainAllocators(TreeNodePool &other)
Definition bslstl_treenodepool.h:551
Definition bslstl_treenode.h:395
VALUE & value()
Definition bslstl_treenode.h:431
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_COMPILERFEATURES_FORWARD(T, V)
Definition bsls_compilerfeatures.h:2349
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_UTIL_ADDRESSOF(OBJ)
Definition bsls_util.h:296
Definition bslstl_algorithm.h:84
Definition bslmf_movableref.h:795