diff --git a/test/has_nothrow_copy_test.cpp b/test/has_nothrow_copy_test.cpp index 9c6c8df..befbb1d 100644 --- a/test/has_nothrow_copy_test.cpp +++ b/test/has_nothrow_copy_test.cpp @@ -12,6 +12,33 @@ # include #endif +struct non_copy +{ + non_copy(); +private: + non_copy(const non_copy&); +}; + +#ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS + +struct delete_copy +{ + delete_copy(); + delete_copy(const delete_copy&) = delete; +}; + +#endif + +#ifndef BOOST_NO_CXX11_NOEXCEPT + +struct noexcept_copy +{ + noexcept_copy(); + noexcept_copy& operator=(const non_copy&)noexcept; +}; + +#endif + TT_TEST_BEGIN(has_nothrow_copy) BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, true); @@ -201,6 +228,16 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::val BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, false); +#ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, false); +#endif + +#ifndef BOOST_NO_CXX11_NOEXCEPT +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, true); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy::value, false); + TT_TEST_END