// (C) Copyright John Maddock 2000. // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #ifdef TEST_STD # include #else # include #endif #include "test.hpp" #include "check_integral_constant.hpp" struct non_copy_constructible { non_copy_constructible(); non_copy_constructible(int); non_copy_constructible(double*, double*); #ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS non_copy_constructible(const non_copy_constructible&) = delete; #endif #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES non_copy_constructible(non_copy_constructible&&); #endif }; struct A { }; struct B : A { }; TT_TEST_BEGIN(is_constructible) #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value) , false); #endif BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); BOOST_CHECK_SOFT_INTEGRAL_CONSTANT((::tt::is_constructible::value), true, false); BOOST_CHECK_SOFT_INTEGRAL_CONSTANT((::tt::is_constructible::value), true, false); BOOST_CHECK_SOFT_INTEGRAL_CONSTANT((::tt::is_constructible::value), true, false); BOOST_CHECK_SOFT_INTEGRAL_CONSTANT((::tt::is_constructible::value), true, false); #if !BOOST_WORKAROUND(BOOST_GCC, < 40500) BOOST_CHECK_SOFT_INTEGRAL_CONSTANT((::tt::is_constructible::value), true, false); #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_DECLTYPE) && !BOOST_WORKAROUND(BOOST_MSVC, < 1800) BOOST_CHECK_SOFT_INTEGRAL_CONSTANT((::tt::is_constructible::value), true, false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); #endif #ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); #endif #endif BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), true); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), true); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), true); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), true); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), true); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), true); #if !(defined(CI_SUPPRESS_KNOWN_ISSUES) && BOOST_WORKAROUND(BOOST_GCC, < 40700)) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), true); #endif BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_constructible::value), false); TT_TEST_END