• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()11 int 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()31 int main() {}
32 //]
33 #endif
34