8#ifndef INCLUDED_BSLMA_POINTERUTIL
9#define INCLUDED_BSLMA_POINTERUTIL
183#include <bslscm_version.h>
209#ifdef BSLS_PLATFORM_CMP_SUN
210 template <
class TYPE>
211 static TYPE *
unqualify(
const volatile TYPE *address);
213 template <
class TYPE>
216 template <
class TYPE>
219 template <
class TYPE>
222 template <
class TYPE>
232 template <
class TYPE>
239#ifdef BSLS_PLATFORM_CMP_SUN
243 template <
class TYPE>
248 template <
class TYPE>
252#ifndef BSLS_COMPILERFEATURES_SUPPORT_CONSTEXPR_CPP17
256 template <
class TYPE>
263 template <
class TYPE>
277#ifdef BSLS_PLATFORM_CMP_SUN
289 return const_cast<TYPE *
>(address);
312 return const_cast<TYPE *
>(address);
320 return const_cast<TYPE *
>(address);
326 const volatile TYPE *address)
329 return const_cast<TYPE *
>(address);
333#ifdef BSLS_COMPILERFEATURES_SUPPORT_CONSTEXPR_CPP17
338 if constexpr (bsl::is_function_v<TYPE>) {
341 return reinterpret_cast<void *
>(address);
344 return unqualify(address);
363 return unqualify(address);
372 return reinterpret_cast<void *
>(address);
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_CONSTEXPR
Definition bsls_keyword.h:624
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:674
Definition baljsn_encoder_testtypes.h:76
Definition bslmf_integralconstant.h:261
Definition bslmf_isfunction.h:232
Definition bslma_pointerutil.h:203
static BSLS_KEYWORD_CONSTEXPR void * voidify(TYPE *address) BSLS_KEYWORD_NOEXCEPT
Definition bslma_pointerutil.h:350
static BSLS_KEYWORD_CONSTEXPR TYPE * unqualify(TYPE *address) BSLS_KEYWORD_NOEXCEPT
Definition bslma_pointerutil.h:301