]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/integer/test/gcd_noexcept_test.cpp
2 // (C) Copyright John Maddock 2017.
3 // Distributed under the Boost Software License, Version 1.0. (See
4 // accompanying file LICENSE_1_0.txt or copy at
5 // https://www.boost.org/LICENSE_1_0.txt)
7 #include <boost/integer/common_factor.hpp>
9 #if !defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
11 // These tests don't pass with GCC-4.x:
13 #if !defined(BOOST_GCC) || (BOOST_GCC >= 50000)
15 void test_noexcept(unsigned char a
, unsigned char b
)
17 static_assert(noexcept(boost::integer::gcd(static_cast<unsigned char>(a
), static_cast<unsigned char>(b
))), "Expected a noexcept function.");
19 // This generates an internal compiler error if enabled as well as the following test:
20 static_assert(noexcept(boost::integer::gcd(static_cast<char>(a
), static_cast<char>(b
))), "Expected a noexcept function.");
22 static_assert(noexcept(boost::integer::gcd(static_cast<signed char>(a
), static_cast<signed char>(b
))), "Expected a noexcept function.");
23 static_assert(noexcept(boost::integer::gcd(static_cast<short>(a
), static_cast<short>(b
))), "Expected a noexcept function.");
24 static_assert(noexcept(boost::integer::gcd(static_cast<unsigned short>(a
), static_cast<unsigned short>(b
))), "Expected a noexcept function.");
25 static_assert(noexcept(boost::integer::gcd(static_cast<int>(a
), static_cast<int>(b
))), "Expected a noexcept function.");
26 static_assert(noexcept(boost::integer::gcd(static_cast<unsigned int>(a
), static_cast<unsigned int>(b
))), "Expected a noexcept function.");
27 static_assert(noexcept(boost::integer::gcd(static_cast<long>(a
), static_cast<long>(b
))), "Expected a noexcept function.");
28 static_assert(noexcept(boost::integer::gcd(static_cast<unsigned long>(a
), static_cast<unsigned long>(b
))), "Expected a noexcept function.");
29 static_assert(noexcept(boost::integer::gcd(static_cast<long long>(a
), static_cast<long long>(b
))), "Expected a noexcept function.");
30 static_assert(noexcept(boost::integer::gcd(static_cast<unsigned long long>(a
), static_cast<unsigned long long>(b
))), "Expected a noexcept function.");