/* 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 { }; template struct E1 { typedef bool element_type; }; template struct E2 { typedef bool element_type; }; template struct E3 { typedef bool element_type; }; #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct P { }; template struct E { typedef bool element_type; }; #endif int main() { BOOST_TEST_TRAIT_TRUE((boost::core::is_same::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); #endif BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); #endif BOOST_TEST_TRAIT_TRUE((boost::core::is_same::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); BOOST_TEST_TRAIT_TRUE((boost::core::is_same >::element_type>)); return boost::report_errors(); }