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 8 #include <boost/callable_traits/detail/config.hpp> 9 10 #ifndef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE main()11int main(){} 12 #else 13 14 //[ is_transaction_safe 15 #include <boost/callable_traits/is_transaction_safe.hpp> 16 17 namespace ct = boost::callable_traits; 18 19 struct foo; 20 21 static_assert(ct::is_transaction_safe<int() transaction_safe>::value, ""); 22 static_assert(ct::is_transaction_safe<int(*)() transaction_safe>::value, ""); 23 static_assert(ct::is_transaction_safe<int(&)() transaction_safe>::value, ""); 24 static_assert(ct::is_transaction_safe<int(foo::*)() const transaction_safe>::value, ""); 25 26 static_assert(!ct::is_transaction_safe<int()>::value, ""); 27 static_assert(!ct::is_transaction_safe<int(*)()>::value, ""); 28 static_assert(!ct::is_transaction_safe<int(&)()>::value, ""); 29 static_assert(!ct::is_transaction_safe<int(foo::*)() const>::value, ""); 30 main()31int main() {} 32 //] 33 #endif 34