8#ifndef INCLUDED_BSLMF_ISFUNCTION
9#define INCLUDED_BSLMF_ISFUNCTION
99#include <bslscm_version.h>
108#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
113#if defined(BSLS_PLATFORM_CMP_IBM)
123struct IsFunction_Imp {
133 template <
class t_TYPE>
134 static FalseType test(
int t_TYPE::*, void *);
137 template <
class t_TYPE>
138 static FalseType test(t_TYPE (*)[2], ...);
145 template <
class t_TYPE>
146 static char test(...);
158template <
class t_TYPE>
162 sizeof(BloombergLP::bslmf::IsFunction_Imp::test<t_TYPE>(0, 0)) == 1> {
170template <
class t_TYPE>
177template <
class t_TYPE>
200struct is_function<volatile void> :
false_type {
207struct is_function<const volatile void> :
false_type {
218#ifdef BSLS_PLATFORM_CMP_MSVC
219# pragma warning(push)
220# pragma warning(disable: 4180)
230template <
class t_TYPE>
235#ifdef BSLS_PLATFORM_CMP_MSVC
244template <
class t_TYPE>
248#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES)
254template <
class t_TYPE>
259#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
262template <
class t_TYPE>
static const bool 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
Definition bdlbb_blob.h:576
Definition bslmf_integralconstant.h:244
Definition bslmf_isfunction.h:232