pmf.hpp
Go to the documentation of this file.
1 /*
2 
3 @Copyright Barrett Adair 2015-2017
4 Distributed under the Boost Software License, Version 1.0.
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
6 
7 */
8 
9 #ifndef BOOST_CLBL_TRTS_DETAIL_PMF_HPP
10 #define BOOST_CLBL_TRTS_DETAIL_PMF_HPP
11 
17 
18 namespace boost { namespace callable_traits { namespace detail {
19 
20 template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoExcept,
21  typename CallingConvention, typename T, typename Return,
22  typename... Args>
24 
25 template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoexcept,
26  typename CallingConvention, typename T, typename Return,
27  typename... Args>
29 
30 template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept,
31  typename... Ts>
33  typename set_member_function_qualifiers_t<Flags, IsTransactionSafe,
34  IsNoexcept, Ts...>::type;
35 
36 template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept,
37  typename... Ts>
40  IsTransactionSafe, IsNoexcept, Ts...>::type;
41 
42 template<typename T>
44 
45 #define BOOST_CLBL_TRTS_CC_TAG dummy
46 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
47 #define BOOST_CLBL_TRTS_CC
49 #undef BOOST_CLBL_TRTS_CC
50 #undef BOOST_CLBL_TRTS_CC_TAG
51 #undef BOOST_CLBL_TRTS_VARARGS_CC
52 
53 #define BOOST_CLBL_TRTS_CC_TAG dummy
54 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
55 #define BOOST_CLBL_TRTS_CC
57 #undef BOOST_CLBL_TRTS_CC
58 #undef BOOST_CLBL_TRTS_CC_TAG
59 #undef BOOST_CLBL_TRTS_VARARGS_CC
60 
61 #ifdef BOOST_CLBL_TRTS_ENABLE_CDECL
62 #define BOOST_CLBL_TRTS_CC_TAG cdecl_tag
63 #define BOOST_CLBL_TRTS_VARARGS_CC __cdecl
64 #define BOOST_CLBL_TRTS_CC __cdecl
66 #undef BOOST_CLBL_TRTS_CC
67 #undef BOOST_CLBL_TRTS_CC_TAG
68 #undef BOOST_CLBL_TRTS_VARARGS_CC
69 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_CDECL
70 
71 // Defining this macro enables undocumented features, likely broken.
72 // Too much work to maintain, but knock yourself out
73 #ifdef BOOST_CLBL_TRTS_ENABLE_STDCALL
74 #define BOOST_CLBL_TRTS_CC_TAG stdcall_tag
75 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
76 #define BOOST_CLBL_TRTS_CC __stdcall
78 #undef BOOST_CLBL_TRTS_CC
79 #undef BOOST_CLBL_TRTS_CC_TAG
80 #undef BOOST_CLBL_TRTS_VARARGS_CC
81 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_STDCALL
82 
83 // Defining this macro enables undocumented features, likely broken.
84 // Too much work to officially maintain, but knock yourself out
85 #ifdef BOOST_CLBL_TRTS_ENABLE_FASTCALL
86 #define BOOST_CLBL_TRTS_CC_TAG fastcall_tag
87 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
88 #define BOOST_CLBL_TRTS_CC __fastcall
90 #undef BOOST_CLBL_TRTS_CC
91 #undef BOOST_CLBL_TRTS_CC_TAG
92 #undef BOOST_CLBL_TRTS_VARARGS_CC
93 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_FASTCALL
94 
95 }}} // namespace boost::callable_traits::detail
96 
97 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_PMF_HPP
typename set_varargs_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_varargs_member_function_qualifiers
Definition: pmf.hpp:40
typename set_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_member_function_qualifiers
Definition: pmf.hpp:34