pmf_varargs_2.hpp
Go to the documentation of this file.
1 /*
2 Copyright (c) 2016 Barrett Adair
3 
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 HEADER GUARDS INTENTIONALLY OMITTED
8 DO NOT INCLUDE THIS HEADER DIRECTLY
9 
10 */
11 
12 template<typename T, typename Return, typename... Args>
13 struct set_varargs_member_function_qualifiers_t <
14  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
15  false, // IsTransactionSafe
16  false, // IsNoexcept
17  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
18 
19  using type =
20  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
22 };
23 
24 template<typename T, typename Return, typename... Args>
25 struct set_varargs_member_function_qualifiers_t <
26  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
27  false,
28  true,
29  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
30 
31  using type =
32  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
34 };
35 
36 template<typename T, typename Return, typename... Args>
37 struct set_varargs_member_function_qualifiers_t <
38  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
39  true,
40  false,
41  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
42 
43  using type =
44  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
47 };
48 
49 template<typename T, typename Return, typename... Args>
50 struct set_varargs_member_function_qualifiers_t <
51  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
52  true,
53  true,
54  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
55 
56  using type =
57  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
61 };
62 
63 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
64 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::false_type
66 
67 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
68 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
69 
70 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
71 
72 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::true_type
73 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE transaction_safe
75 #endif
76 
77 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
78 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
#define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
Definition: config.hpp:37
#define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
Definition: config.hpp:106
#define BOOST_CLBL_TRTS_CC_TAG
Definition: function.hpp:81
#define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
Definition: function.hpp:72
#define BOOST_CLBL_TRTS_VARARGS_CC
Definition: function.hpp:82
Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER type
Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER type
Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER type