Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:29:44

0001 /*
0002 Copyright (c) 2016 Barrett Adair
0003 
0004 Distributed under the Boost Software License, Version 1.0.
0005 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
0006 
0007 HEADER GUARDS INTENTIONALLY OMITTED
0008 DO NOT INCLUDE THIS HEADER DIRECTLY
0009 
0010 */
0011 
0012 template<typename Return, typename T, typename... Args>
0013 struct set_member_function_qualifiers_t<
0014     flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
0015     false, // IsTransactionSafe
0016     false, // IsNoexcept
0017     BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
0018 
0019     using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
0020         BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS;
0021 };
0022 
0023 template<typename Return, typename T, typename... Args>
0024 struct set_member_function_qualifiers_t<
0025     flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
0026     false,
0027     true,
0028     BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
0029 
0030     using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
0031         BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
0032         BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER;
0033 };
0034 
0035 template<typename Return, typename T, typename... Args>
0036 struct set_member_function_qualifiers_t<
0037     flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
0038     true,
0039     false,
0040     BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
0041 
0042     using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
0043         BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
0044         BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER;
0045 };
0046 
0047 template<typename Return, typename T, typename... Args>
0048 struct set_member_function_qualifiers_t<
0049     flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
0050     true,
0051     true,
0052     BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
0053 
0054     using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
0055         BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
0056         BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
0057         BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER;
0058 };
0059 
0060 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
0061 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::false_type
0062 #include <boost/callable_traits/detail/unguarded/pmf_3.hpp>
0063 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
0064 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
0065 
0066 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
0067 
0068 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::true_type
0069 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE transaction_safe
0070 #include <boost/callable_traits/detail/unguarded/pmf_3.hpp>
0071 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
0072 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
0073 
0074 #endif