diff --git a/test/add_cv_test.cpp b/test/add_cv_test.cpp new file mode 100644 index 0000000..221da00 --- /dev/null +++ b/test/add_cv_test.cpp @@ -0,0 +1,53 @@ + +// (C) Copyright John Maddock 2005. +// 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) + +#include "test.hpp" +#include "check_type.hpp" +#ifdef TEST_STD +# include +#else +# include +#endif + +BOOST_DECL_TRANSFORM_TEST(add_cv_test_1, ::boost::add_cv, const, const volatile) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_2, ::boost::add_cv, volatile, volatile const) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_3, ::boost::add_cv, *, *const volatile) +BOOST_DECL_TRANSFORM_TEST2(add_cv_test_4, ::boost::add_cv, const volatile) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_7, ::boost::add_cv, *volatile, *volatile const) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_10, ::boost::add_cv, const*, const*const volatile) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_11, ::boost::add_cv, volatile*, volatile*const volatile ) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_5, ::boost::add_cv, const &, const&) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_6, ::boost::add_cv, &, &) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_8, ::boost::add_cv, const [2], const volatile [2]) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_9, ::boost::add_cv, volatile &, volatile&) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_12, ::boost::add_cv, [2][3], const volatile[2][3]) +BOOST_DECL_TRANSFORM_TEST(add_cv_test_13, ::boost::add_cv, (&)[2], (&)[2]) + +TT_TEST_BEGIN(add_const) + + add_cv_test_1(); + add_cv_test_2(); + add_cv_test_3(); + add_cv_test_4(); + add_cv_test_7(); + add_cv_test_10(); + add_cv_test_11(); + add_cv_test_5(); + add_cv_test_6(); + add_cv_test_8(); + add_cv_test_9(); + add_cv_test_12(); + add_cv_test_13(); + +TT_TEST_END + + + + + + + + diff --git a/test/aligned_storage_test.cpp b/test/aligned_storage_test.cpp new file mode 100644 index 0000000..be89886 --- /dev/null +++ b/test/aligned_storage_test.cpp @@ -0,0 +1,72 @@ + +// (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) + +#include "test.hpp" +#include "check_integral_constant.hpp" +#ifdef TEST_STD +# include +#else +# include +# include +# include +#endif + +template +void check(const T&) +{ + typedef typename tt::aligned_storage::type t1; + BOOST_MESSAGE(typeid(t1).name()); + BOOST_CHECK(::tt::alignment_of::value == T::value); + BOOST_CHECK(sizeof(t1) == T::value); +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + BOOST_CHECK(::tt::is_pod::value == true); +#endif + typedef typename tt::aligned_storage::type t2; + BOOST_MESSAGE(typeid(t2).name()); + BOOST_CHECK(::tt::alignment_of::value == T::value); + BOOST_CHECK(sizeof(t2) == T::value*2); +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + BOOST_CHECK(::tt::is_pod::value == true); +#endif +} + +TT_TEST_BEGIN(type_with_alignment) + +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); + +#ifdef BOOST_HAS_LONG_LONG +check(tt::integral_constant::value>()); +#endif +#ifdef BOOST_HAS_MS_INT64 +check(tt::integral_constant::value>()); +#endif +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); +check(tt::integral_constant::value>()); + +TT_TEST_END + + + + + + + + + diff --git a/test/test.hpp b/test/test.hpp index 547d4d0..2540fe4 100644 --- a/test/test.hpp +++ b/test/test.hpp @@ -24,7 +24,7 @@ // #ifdef TEST_STD -#define tt std +#define tt std::tr1 //#define TYPE_TRAITS(x) //#define TYPE_COMPARE(x)