/* Copyright 2017 Glen Joseph Fernandes (glenjofe@gmail.com) Distributed under the Boost Software License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) */ #include #include #include template struct P1 { }; template struct P2 { }; template struct P3 { }; #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) template struct E1 { template using rebind = E1; }; template struct E2 { template using rebind = E2; }; template struct E3 { template using rebind = E3; }; #endif #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct P { }; #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) template struct E { template using rebind = E; }; #endif #endif struct R { }; int main() { BOOST_TEST_TRAIT_TRUE((boost::core::is_same::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); #endif BOOST_TEST_TRAIT_TRUE((boost::core::is_same::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); #endif BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same, boost::pointer_traits >::rebind_to::type>)); #endif return boost::report_errors(); }