File indexing completed on 2025-01-18 09:29:45
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef BOOST_CLBL_TRTS_DETAIL_PMF_HPP
0010 #define BOOST_CLBL_TRTS_DETAIL_PMF_HPP
0011
0012 #include <boost/callable_traits/detail/forward_declarations.hpp>
0013 #include <boost/callable_traits/detail/set_function_qualifiers.hpp>
0014 #include <boost/callable_traits/detail/qualifier_flags.hpp>
0015 #include <boost/callable_traits/detail/default_callable_traits.hpp>
0016 #include <boost/callable_traits/detail/utility.hpp>
0017
0018 namespace boost { namespace callable_traits { namespace detail {
0019
0020 template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoExcept,
0021 typename CallingConvention, typename T, typename Return,
0022 typename... Args>
0023 struct set_member_function_qualifiers_t;
0024
0025 template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoexcept,
0026 typename CallingConvention, typename T, typename Return,
0027 typename... Args>
0028 struct set_varargs_member_function_qualifiers_t;
0029
0030 template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept,
0031 typename... Ts>
0032 using set_member_function_qualifiers =
0033 typename set_member_function_qualifiers_t<Flags, IsTransactionSafe,
0034 IsNoexcept, Ts...>::type;
0035
0036 template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept,
0037 typename... Ts>
0038 using set_varargs_member_function_qualifiers =
0039 typename set_varargs_member_function_qualifiers_t<Flags,
0040 IsTransactionSafe, IsNoexcept, Ts...>::type;
0041
0042 template<typename T>
0043 struct pmf : default_callable_traits<T> {};
0044
0045 #define BOOST_CLBL_TRTS_CC_TAG dummy
0046 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
0047 #define BOOST_CLBL_TRTS_CC
0048 #include <boost/callable_traits/detail/unguarded/pmf.hpp>
0049 #undef BOOST_CLBL_TRTS_CC
0050 #undef BOOST_CLBL_TRTS_CC_TAG
0051 #undef BOOST_CLBL_TRTS_VARARGS_CC
0052
0053 #define BOOST_CLBL_TRTS_CC_TAG dummy
0054 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
0055 #define BOOST_CLBL_TRTS_CC
0056 #include <boost/callable_traits/detail/unguarded/pmf_varargs.hpp>
0057 #undef BOOST_CLBL_TRTS_CC
0058 #undef BOOST_CLBL_TRTS_CC_TAG
0059 #undef BOOST_CLBL_TRTS_VARARGS_CC
0060
0061 #ifdef BOOST_CLBL_TRTS_ENABLE_CDECL
0062 #define BOOST_CLBL_TRTS_CC_TAG cdecl_tag
0063 #define BOOST_CLBL_TRTS_VARARGS_CC __cdecl
0064 #define BOOST_CLBL_TRTS_CC __cdecl
0065 #include <boost/callable_traits/detail/unguarded/pmf.hpp>
0066 #undef BOOST_CLBL_TRTS_CC
0067 #undef BOOST_CLBL_TRTS_CC_TAG
0068 #undef BOOST_CLBL_TRTS_VARARGS_CC
0069 #endif
0070
0071
0072
0073 #ifdef BOOST_CLBL_TRTS_ENABLE_STDCALL
0074 #define BOOST_CLBL_TRTS_CC_TAG stdcall_tag
0075 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
0076 #define BOOST_CLBL_TRTS_CC __stdcall
0077 #include <boost/callable_traits/detail/unguarded/pmf.hpp>
0078 #undef BOOST_CLBL_TRTS_CC
0079 #undef BOOST_CLBL_TRTS_CC_TAG
0080 #undef BOOST_CLBL_TRTS_VARARGS_CC
0081 #endif
0082
0083
0084
0085 #ifdef BOOST_CLBL_TRTS_ENABLE_FASTCALL
0086 #define BOOST_CLBL_TRTS_CC_TAG fastcall_tag
0087 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
0088 #define BOOST_CLBL_TRTS_CC __fastcall
0089 #include <boost/callable_traits/detail/unguarded/pmf.hpp>
0090 #undef BOOST_CLBL_TRTS_CC
0091 #undef BOOST_CLBL_TRTS_CC_TAG
0092 #undef BOOST_CLBL_TRTS_VARARGS_CC
0093 #endif
0094
0095 }}}
0096
0097 #endif