// Copyright 2022 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #include #include struct X1 { char const* begin() const; char const* end() const; typedef void hasher; }; struct X2 { char const* begin() const; char const* end() const; typedef void hasher; }; struct X3 { char const* begin() const; char const* end() const; typedef void hasher; }; namespace boost { namespace container_hash { template struct is_unordered_range; template<> struct is_unordered_range: boost::false_type {}; template struct is_range; template<> struct is_range: boost::false_type {}; } // namespace container_hash } // namespace boost #include #include int main() { using boost::container_hash::is_unordered_range; #if !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_SFINAE_EXPR) && !BOOST_WORKAROUND(BOOST_GCC, < 40700) BOOST_TEST_TRAIT_TRUE((is_unordered_range)); #endif BOOST_TEST_TRAIT_FALSE((is_unordered_range)); BOOST_TEST_TRAIT_FALSE((is_unordered_range)); return boost::report_errors(); }