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;
170template <
class TYPE,
class =
void>
181 typename
bslmf::VoidType<typename TYPE::size_type>::type> {
183 typedef typename TYPE::size_type
type;
200 typename IsStdAllocator_SizeType<TYPE>::type>::type
204#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
217#ifdef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
243#ifdef BSLS_COMPILERFEATURES_SUPPORT_DECLTYPE
248template <
class TYPE,
class SIZE_T,
class>
260template <
class TYPE,
class SIZE_T>
261struct IsStdAllocator_Imp<
264 bsl::void_t<typename TYPE::value_type,
265 decltype(std::declval<TYPE&>().allocate(SIZE_T()))> >
268#ifndef BSLMA_ISALLOCATOR_IGNORE_CPP03_COMPATIBILITY
289template <
class TYPE,
class SIZE_T,
class>
298template <
class TYPE,
class SIZE_T>
302 typename
bsl::enable_if<
303 bslmf::DetectNestedTrait<TYPE, IsStdAllocator>::value>::type
309 template <
class T>
struct check { };
312 static TYPE& allocObj;
319 BSLMF_ASSERT(
sizeof(check<typename TYPE::value_type>) > 0);
331using BloombergLP::bslma::IsStdAllocator;
333#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
334using BloombergLP::bslma::IsStdAllocator_v;
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:229
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_INLINE_VARIABLE
Definition bsls_keyword.h:623
Definition bdlb_printmethods.h:283
Definition balxml_encoderoptions.h:68
Definition bdlbb_blob.h:576
Definition bdldfp_decimal.h:5188
Definition bslmf_integralconstant.h:244
Definition bslma_isstdallocator.h:290
TYPE::size_type type
Definition bslma_isstdallocator.h:183
Definition bslma_isstdallocator.h:172
std::size_t type
Definition bslma_isstdallocator.h:174
Definition bslma_isstdallocator.h:201
Definition bslmf_detectnestedtrait.h:464