/*<- Copyright (c) 2016 Barrett Adair Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) ->*/ #include #ifndef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE int main(){} #else #include #include "test.hpp" template void test() { CT_ASSERT( is_transaction_safe::value); CT_ASSERT(! is_transaction_safe::value); } #define TEST_TRANSACTION_SAFE(not_safe) test() int main() { TEST_TRANSACTION_SAFE(int() const); TEST_TRANSACTION_SAFE(int(*)()); TEST_TRANSACTION_SAFE(int(...) volatile &); TEST_TRANSACTION_SAFE(int(*)(...)); struct foo; TEST_TRANSACTION_SAFE(int(foo::*)()); TEST_TRANSACTION_SAFE(int(foo::*)() const volatile); TEST_TRANSACTION_SAFE(int(foo::*)(...)); TEST_TRANSACTION_SAFE(int(foo::*)(...) const volatile &&); } #endif