/*<- 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 #include #include "test.hpp" template void test() { CT_ASSERT( is_noexcept::value // for old compilers, TEST_NOEXCEPT_QUAL is empty so types are same || std::is_same::value); CT_ASSERT(! is_noexcept::value); } #define TEST_NOEXCEPT(not_noexcept) test() int main() { TEST_NOEXCEPT(int(*)()); #ifndef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS TEST_NOEXCEPT(int() const); TEST_NOEXCEPT(int(...) volatile LREF); #endif TEST_NOEXCEPT(int(*)(...)); struct foo; TEST_NOEXCEPT(int(foo::*)()); TEST_NOEXCEPT(int(foo::*)() const volatile); TEST_NOEXCEPT(int(foo::*)(...)); TEST_NOEXCEPT(int(foo::*)(...) const volatile RREF); }