// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard // Hinnant & John Maddock 2000. // Use, modification and distribution are subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt). // // See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_CXX_11_HPP_INCLUDED #define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_CXX_11_HPP_INCLUDED #include namespace boost { #ifdef _MSC_VER #define BOOST_TT_DEF_CALL __thiscall #else #define BOOST_TT_DEF_CALL #endif template struct is_member_function_pointer : public false_type {}; template struct is_member_function_pointer : public is_member_function_pointer {}; template struct is_member_function_pointer : public is_member_function_pointer {}; template struct is_member_function_pointer : public is_member_function_pointer {}; #if defined(BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM) // MSVC can't handle noexcept(b) as a deduced template parameter // so we will have to write everything out :( #define BOOST_TT_NOEXCEPT_PARAM #define BOOST_TT_NOEXCEPT_DECL #elif defined(__cpp_noexcept_function_type) #define BOOST_TT_NOEXCEPT_PARAM , bool NE #define BOOST_TT_NOEXCEPT_DECL noexcept(NE) #else #define BOOST_TT_NOEXCEPT_PARAM #define BOOST_TT_NOEXCEPT_DECL #endif template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // volatile: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const volatile template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // Reference qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // volatile: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const volatile template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // rvalue reference qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // volatile: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const volatile template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; #if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // reference qualified: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // rvalue reference qualified: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif #endif #if defined(BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM) && !defined(BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE) #undef BOOST_TT_NOEXCEPT_DECL #define BOOST_TT_NOEXCEPT_DECL noexcept template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // volatile: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const volatile template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // Reference qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // volatile: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const volatile template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // rvalue reference qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const qualified: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // volatile: template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; // const volatile template struct is_member_function_pointer : public true_type {}; template struct is_member_function_pointer : public true_type {}; #if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // reference qualified: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // rvalue reference qualified: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif // const volatile: #ifdef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; #ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; #endif template struct is_member_function_pointer : public true_type {}; #endif #if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif #endif #endif #undef BOOST_TT_NOEXCEPT_DECL #undef BOOST_TT_NOEXCEPT_PARAM #undef BOOST_TT_DEF_CALL } #endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_CXX_11_HPP_INCLUDED