8#ifndef INCLUDED_BSLMF_ISMEMBERPOINTER
9#define INCLUDED_BSLMF_ISMEMBERPOINTER
117#include <bslscm_version.h>
125#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
142template <
class t_TYPE>
150template <
class t_TARGET_TYPE,
class t_HOST_TYPE>
156template <
class t_TARGET_TYPE,
class t_HOST_TYPE>
162template <
class t_TARGET_TYPE,
class t_HOST_TYPE>
168template <
class t_TARGET_TYPE,
class t_HOST_TYPE>
173#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
176template <
class t_TYPE>
181#if defined(BSLS_PLATFORM_CMP_MSVC) \
182 && BSLS_PLATFORM_CMP_VERSION < 1910 \
183 &&!((BSLS_PLATFORM_CMP_VERSION == 1900) && defined(BSLS_PLATFORM_CPU_64_BIT))
193template <
class t_TYPE>
199template <
class t_TYPE>
200struct is_member_pointer<volatile t_TYPE> : is_member_pointer<t_TYPE>::type {
205template <
class t_TYPE>
206struct is_member_pointer<const volatile t_TYPE>
207: is_member_pointer<t_TYPE>::type {
212template <
class RESULT,
class HOST,
class... ARGS>
213struct is_member_pointer<RESULT (HOST::*)(ARGS...)> :
true_type {
219template <
class RESULT,
class HOST,
class... ARGS>
220struct is_member_pointer<RESULT (HOST::*)(ARGS...) const> :
true_type {
226template <
class RESULT,
class HOST,
class... ARGS>
227struct is_member_pointer<RESULT (HOST::*)(ARGS...) volatile> :
true_type {
233template <
class RESULT,
class HOST,
class... ARGS>
234struct is_member_pointer<RESULT (HOST::*)(ARGS...) const volatile>
241template <
class RESULT,
class HOST,
class... ARGS>
242struct is_member_pointer<RESULT (HOST::*)(ARGS...,...)> :
true_type {
248template <
class RESULT,
class HOST,
class... ARGS>
249struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const> :
true_type {
255template <
class RESULT,
class HOST,
class... ARGS>
256struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) volatile> :
true_type {
262template <
class RESULT,
class HOST,
class... ARGS>
263struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const volatile>
270#if defined(BSLS_COMPILERFEATURES_SUPPORT_REF_QUALIFIERS)
272template <
class RESULT,
class HOST,
class... ARGS>
273struct is_member_pointer<RESULT (HOST::*)(ARGS...) &>
280template <
class RESULT,
class HOST,
class... ARGS>
281struct is_member_pointer<RESULT (HOST::*)(ARGS...) const &>
288template <
class RESULT,
class HOST,
class... ARGS>
289struct is_member_pointer<RESULT (HOST::*)(ARGS...) volatile &>
296template <
class RESULT,
class HOST,
class... ARGS>
297struct is_member_pointer<RESULT (HOST::*)(ARGS...) const volatile &>
304template <
class RESULT,
class HOST,
class... ARGS>
305struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) &>
312template <
class RESULT,
class HOST,
class... ARGS>
313struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const &>
320template <
class RESULT,
class HOST,
class... ARGS>
321struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) volatile &>
328template <
class RESULT,
class HOST,
class... ARGS>
329struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const volatile &>
336template <
class RESULT,
class HOST,
class... ARGS>
337struct is_member_pointer<RESULT (HOST::*)(ARGS...) &&>
344template <
class RESULT,
class HOST,
class... ARGS>
345struct is_member_pointer<RESULT (HOST::*)(ARGS...) const &&>
352template <
class RESULT,
class HOST,
class... ARGS>
353struct is_member_pointer<RESULT (HOST::*)(ARGS...) volatile &&>
360template <
class RESULT,
class HOST,
class... ARGS>
361struct is_member_pointer<RESULT (HOST::*)(ARGS...) const volatile &&>
368template <
class RESULT,
class HOST,
class... ARGS>
369struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) &&>
376template <
class RESULT,
class HOST,
class... ARGS>
377struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const &&>
384template <
class RESULT,
class HOST,
class... ARGS>
385struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) volatile &&>
392template <
class RESULT,
class HOST,
class... ARGS>
393struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const volatile &&>
#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
integral_constant< bool, true > true_type
Definition bslmf_integralconstant.h:296
Definition bslmf_integralconstant.h:261
Definition bslmf_ismemberpointer.h:143