// Copyright David Abrahams 2005. Distributed under 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 #include #include #include #include #if !defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) #include #endif namespace test { using namespace boost::parameter::aux; using namespace boost; struct foo {}; BOOST_MPL_ASSERT((is_same::type,int>)); BOOST_MPL_ASSERT((is_same::type,int const>)); BOOST_MPL_ASSERT((is_same::type,int volatile>)); BOOST_MPL_ASSERT((is_same::type,int const volatile>)); BOOST_MPL_ASSERT((is_same::type,foo>)); BOOST_MPL_ASSERT((is_same::type,foo const>)); BOOST_MPL_ASSERT((is_same::type,foo volatile>)); BOOST_MPL_ASSERT((is_same::type,foo const volatile>)); BOOST_MPL_ASSERT((is_same >::type,foo>)); BOOST_MPL_ASSERT((is_same const>::type,foo>)); BOOST_MPL_ASSERT((is_same volatile>::type,foo>)); BOOST_MPL_ASSERT((is_same const volatile>::type,foo>)); #if !defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) BOOST_MPL_ASSERT((is_same >::type,foo>)); BOOST_MPL_ASSERT((is_same const>::type,foo>)); BOOST_MPL_ASSERT((is_same volatile>::type,foo>)); BOOST_MPL_ASSERT((is_same const volatile>::type,foo>)); #endif }