// Copyright 2017 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. #include #include #include #include #include #if !defined(BOOST_NO_CXX11_HDR_ARRAY) # include #endif #if !defined(BOOST_NO_CXX11_HDR_TUPLE) # include #endif struct X { }; int main() { using boost::hash2::is_tuple_like; BOOST_TEST_TRAIT_FALSE((is_tuple_like)); BOOST_TEST_TRAIT_FALSE((is_tuple_like)); BOOST_TEST_TRAIT_FALSE((is_tuple_like)); BOOST_TEST_TRAIT_FALSE((is_tuple_like)); BOOST_TEST_TRAIT_FALSE((is_tuple_like)); BOOST_TEST_TRAIT_FALSE((is_tuple_like)); BOOST_TEST_TRAIT_FALSE((is_tuple_like)); BOOST_TEST_TRAIT_FALSE((is_tuple_like)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::pair >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::pair const >)); #if !defined(BOOST_NO_CXX11_HDR_ARRAY) BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::array >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::array const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::array >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::array const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::array >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::array const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::array >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::array const >)); #endif #if !defined(BOOST_NO_CXX11_HDR_TUPLE) BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::tuple<> >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::tuple<> const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::tuple >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::tuple const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::tuple >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::tuple const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::tuple >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< std::tuple const >)); #endif BOOST_TEST_TRAIT_TRUE((is_tuple_like< boost::array >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< boost::array const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< boost::array >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< boost::array const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< boost::array >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< boost::array const >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< boost::array >)); BOOST_TEST_TRAIT_TRUE((is_tuple_like< boost::array const >)); return boost::report_errors(); }