// Copyright 2017 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. #include #include #include #include #include struct H { }; class X; struct Y { }; enum E { v }; template void test_true_() { using boost::hash2::is_contiguously_hashable; BOOST_TEST_TRAIT_TRUE((is_contiguously_hashable)); BOOST_TEST_TRAIT_TRUE((is_contiguously_hashable)); BOOST_TEST_TRAIT_TRUE((is_contiguously_hashable)); BOOST_TEST_TRAIT_TRUE((is_contiguously_hashable)); } template void test_false_() { using boost::hash2::is_contiguously_hashable; BOOST_TEST_TRAIT_FALSE((is_contiguously_hashable)); BOOST_TEST_TRAIT_FALSE((is_contiguously_hashable)); BOOST_TEST_TRAIT_FALSE((is_contiguously_hashable)); BOOST_TEST_TRAIT_FALSE((is_contiguously_hashable)); } template void test_true() { test_true_(); test_true_(); test_true_(); test_true_(); } template void test_false() { test_false_(); test_true_(); test_false_(); test_false_(); } int main() { test_true_(); test_true_(); test_true_(); test_true_(); test_true_(); #if !defined(BOOST_NO_CXX11_CHAR16_T) test_true_(); #endif #if !defined(BOOST_NO_CXX11_CHAR32_T) test_true_(); #endif test_true_(); test_true_(); test_true_(); test_true_(); test_true_(); test_true_(); test_true_(); test_false_(); test_false_(); test_false_(); #if !defined(BOOST_NO_CXX11_NULLPTR) test_false_(); #endif test_true_(); test_true_(); test_true_(); test_true_(); test_false_(); test_false_(); test_true_(); return boost::report_errors(); }