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>
149template <
class t_TARGET_TYPE,
class t_HOST_TYPE>
155template <
class t_TARGET_TYPE,
class t_HOST_TYPE>
161template <
class t_TARGET_TYPE,
class t_HOST_TYPE>
167template <
class t_TARGET_TYPE,
class t_HOST_TYPE>
172#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
175template <
class t_TYPE>
180#if defined(BSLS_PLATFORM_CMP_MSVC) \
181 && BSLS_PLATFORM_CMP_VERSION < 1910 \
182 &&!((BSLS_PLATFORM_CMP_VERSION == 1900) && defined(BSLS_PLATFORM_CPU_64_BIT))
192template <
class t_TYPE>
198template <
class t_TYPE>
199struct is_member_pointer<volatile t_TYPE> : is_member_pointer<t_TYPE>::type {
204template <
class t_TYPE>
205struct is_member_pointer<const volatile t_TYPE>
206: is_member_pointer<t_TYPE>::type {
211template <
class RESULT,
class HOST,
class... ARGS>
212struct is_member_pointer<RESULT (HOST::*)(ARGS...)> :
true_type {
218template <
class RESULT,
class HOST,
class... ARGS>
219struct is_member_pointer<RESULT (HOST::*)(ARGS...) const> :
true_type {
225template <
class RESULT,
class HOST,
class... ARGS>
226struct is_member_pointer<RESULT (HOST::*)(ARGS...) volatile> :
true_type {
232template <
class RESULT,
class HOST,
class... ARGS>
233struct is_member_pointer<RESULT (HOST::*)(ARGS...) const volatile>
240template <
class RESULT,
class HOST,
class... ARGS>
241struct is_member_pointer<RESULT (HOST::*)(ARGS...,...)> :
true_type {
247template <
class RESULT,
class HOST,
class... ARGS>
248struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const> :
true_type {
254template <
class RESULT,
class HOST,
class... ARGS>
255struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) volatile> :
true_type {
261template <
class RESULT,
class HOST,
class... ARGS>
262struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const volatile>
269#if defined(BSLS_COMPILERFEATURES_SUPPORT_REF_QUALIFIERS)
271template <
class RESULT,
class HOST,
class... ARGS>
272struct is_member_pointer<RESULT (HOST::*)(ARGS...) &>
279template <
class RESULT,
class HOST,
class... ARGS>
280struct is_member_pointer<RESULT (HOST::*)(ARGS...) const &>
287template <
class RESULT,
class HOST,
class... ARGS>
288struct is_member_pointer<RESULT (HOST::*)(ARGS...) volatile &>
295template <
class RESULT,
class HOST,
class... ARGS>
296struct is_member_pointer<RESULT (HOST::*)(ARGS...) const volatile &>
303template <
class RESULT,
class HOST,
class... ARGS>
304struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) &>
311template <
class RESULT,
class HOST,
class... ARGS>
312struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const &>
319template <
class RESULT,
class HOST,
class... ARGS>
320struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) volatile &>
327template <
class RESULT,
class HOST,
class... ARGS>
328struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const volatile &>
335template <
class RESULT,
class HOST,
class... ARGS>
336struct is_member_pointer<RESULT (HOST::*)(ARGS...) &&>
343template <
class RESULT,
class HOST,
class... ARGS>
344struct is_member_pointer<RESULT (HOST::*)(ARGS...) const &&>
351template <
class RESULT,
class HOST,
class... ARGS>
352struct is_member_pointer<RESULT (HOST::*)(ARGS...) volatile &&>
359template <
class RESULT,
class HOST,
class... ARGS>
360struct is_member_pointer<RESULT (HOST::*)(ARGS...) const volatile &&>
367template <
class RESULT,
class HOST,
class... ARGS>
368struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) &&>
375template <
class RESULT,
class HOST,
class... ARGS>
376struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const &&>
383template <
class RESULT,
class HOST,
class... ARGS>
384struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) volatile &&>
391template <
class RESULT,
class HOST,
class... ARGS>
392struct is_member_pointer<RESULT (HOST::*)(ARGS...,...) const volatile &&>
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_INLINE_VARIABLE
Definition bsls_keyword.h:623
Definition bdlb_printmethods.h:283
integral_constant< bool, true > true_type
Definition bslmf_integralconstant.h:303
Definition bslmf_integralconstant.h:244
Definition bslmf_ismemberpointer.h:143