/* Copyright Barrett Adair 2016-2017 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 #include #include "test.hpp" #ifndef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES int main(){} #else template struct is_substitution_failure_remove_noexcept { template static auto test(...) -> std::true_type; template::type* = nullptr> static auto test(int) -> std::false_type; static constexpr bool value = decltype(test(0))::value; }; struct foo; int main() { auto lambda = [](){}; CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); CT_ASSERT(is_substitution_failure_remove_noexcept::value); } #endif //#ifndef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE