8#ifndef INCLUDED_BSLMF_ISMEMBERFUNCTIONPOINTER
9#define INCLUDED_BSLMF_ISMEMBERFUNCTIONPOINTER
121#include <bslscm_version.h>
130#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
135#if !defined(BSLS_PLATFORM_CMP_MSVC) \
136 || BSLS_PLATFORM_CMP_VERSION > 1900 \
137 ||((BSLS_PLATFORM_CMP_VERSION == 1900) && defined(BSLS_PLATFORM_CPU_64_BIT))
152template <
class t_TYPE>
159template <
class t_TYPE,
class t_CLASS>
167template <
class t_TYPE,
class t_CLASS>
176template <
class t_TYPE,
class t_CLASS>
183template <
class t_TYPE,
class t_CLASS>
188#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
191template <
class t_TYPE>
206template <
class t_TYPE>
207struct is_member_function_pointer :
false_type {
218template <
class t_TYPE>
219struct is_member_function_pointer<const t_TYPE>
220: is_member_function_pointer<t_TYPE>::type {
223template <
class t_TYPE>
224struct is_member_function_pointer<volatile t_TYPE>
225: is_member_function_pointer<t_TYPE>::type {
228template <
class t_TYPE>
229struct is_member_function_pointer<const volatile t_TYPE>
230: is_member_function_pointer<t_TYPE>::type {
233template <
class RESULT,
class HOST,
class... ARGS>
234struct is_member_function_pointer<RESULT (HOST::*)(ARGS...)>
241template <
class RESULT,
class HOST,
class... ARGS>
242struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) const>
249template <
class RESULT,
class HOST,
class... ARGS>
250struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) volatile>
257template <
class RESULT,
class HOST,
class... ARGS>
258struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) const volatile>
265template <
class RESULT,
class HOST,
class... ARGS>
266struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...)>
273template <
class RESULT,
class HOST,
class... ARGS>
274struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) const>
281template <
class RESULT,
class HOST,
class... ARGS>
282struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) volatile>
289template <
class RESULT,
class HOST,
class... ARGS>
290struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) const volatile>
297#if defined(BSLS_COMPILERFEATURES_SUPPORT_REF_QUALIFIERS)
299template <
class RESULT,
class HOST,
class... ARGS>
300struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) &>
307template <
class RESULT,
class HOST,
class... ARGS>
308struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) const &>
315template <
class RESULT,
class HOST,
class... ARGS>
316struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) volatile &>
323template <
class RESULT,
class HOST,
class... ARGS>
324struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) const volatile &>
331template <
class RESULT,
class HOST,
class... ARGS>
332struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) &>
339template <
class RESULT,
class HOST,
class... ARGS>
340struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) const &>
347template <
class RESULT,
class HOST,
class... ARGS>
348struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) volatile &>
355template <
class RESULT,
class HOST,
class... ARGS>
356struct is_member_function_pointer<
357 RESULT (HOST::*)(ARGS...,...) const volatile &>
364template <
class RESULT,
class HOST,
class... ARGS>
365struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) &&>
372template <
class RESULT,
class HOST,
class... ARGS>
373struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) const &&>
380template <
class RESULT,
class HOST,
class... ARGS>
381struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) volatile &&>
388template <
class RESULT,
class HOST,
class... ARGS>
389struct is_member_function_pointer<RESULT (HOST::*)(ARGS...) const volatile &&>
396template <
class RESULT,
class HOST,
class... ARGS>
397struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) &&>
404template <
class RESULT,
class HOST,
class... ARGS>
405struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) const &&>
412template <
class RESULT,
class HOST,
class... ARGS>
413struct is_member_function_pointer<RESULT (HOST::*)(ARGS...,...) volatile &&>
420template <
class RESULT,
class HOST,
class... ARGS>
421struct is_member_function_pointer<
422 RESULT (HOST::*)(ARGS...,...) const volatile &&>
430#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
431template <
class t_TYPE>
static const t_TYPE value
Definition bslmf_integralconstant.h:258
#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, false > false_type
Definition bslmf_integralconstant.h:297
integral_constant< bool, true > true_type
Definition bslmf_integralconstant.h:303
Definition bslmf_integralconstant.h:244
Definition bslmf_isfunction.h:232
Definition bslmf_ismemberfunctionpointer.h:153