8#ifndef INCLUDED_BSLMA_ISSTDALLOCATOR
9#define INCLUDED_BSLMA_ISSTDALLOCATOR
139#include <bslscm_version.h>
157template <
class TYPE,
class SIZE_T,
class =
void>
struct IsStdAllocator_Imp;
171template <
class TYPE,
class =
void>
182 typename
bslmf::VoidType<typename TYPE::size_type>::type> {
184 typedef typename TYPE::size_type
type;
201 typename IsStdAllocator_SizeType<TYPE>::type>::type
205#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
218#ifdef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
244#ifdef BSLS_COMPILERFEATURES_SUPPORT_DECLTYPE
249template <
class TYPE,
class SIZE_T,
class>
261template <
class TYPE,
class SIZE_T>
262struct IsStdAllocator_Imp<
265 bsl::void_t<typename TYPE::value_type,
266 decltype(std::declval<TYPE&>().allocate(SIZE_T()))> >
269#ifndef BSLMA_ISALLOCATOR_IGNORE_CPP03_COMPATIBILITY
290template <
class TYPE,
class SIZE_T,
class>
299template <
class TYPE,
class SIZE_T>
303 typename
bsl::enable_if<
304 bslmf::DetectNestedTrait<TYPE, IsStdAllocator>::value>::type
310 template <
class T>
struct check { };
313 static TYPE& allocObj;
320 BSLMF_ASSERT(
sizeof(check<typename TYPE::value_type>) > 0);
332using BloombergLP::bslma::IsStdAllocator;
334#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
335using BloombergLP::bslma::IsStdAllocator_v;
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:231
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_INLINE_VARIABLE
Definition bsls_keyword.h:665
Definition bdlat_valuetypefunctions.h:939
Definition baljsn_encoder_testtypes.h:76
Definition bdlbb_blob.h:579
Definition bdldfp_decimal.h:5549
Definition bslmf_integralconstant.h:261
Definition bslma_isstdallocator.h:291
TYPE::size_type type
Definition bslma_isstdallocator.h:184
Definition bslma_isstdallocator.h:173
std::size_t type
Definition bslma_isstdallocator.h:175
Definition bslma_isstdallocator.h:202
Definition bslmf_detectnestedtrait.h:467