File indexing completed on 2025-09-17 08:33:43
0001 #ifndef BOOST_HASH2_HAS_CONSTANT_SIZE_HPP_INCLUDED
0002 #define BOOST_HASH2_HAS_CONSTANT_SIZE_HPP_INCLUDED
0003
0004
0005
0006
0007
0008 #include <type_traits>
0009 #include <utility>
0010
0011 namespace boost
0012 {
0013
0014
0015 template<class T, std::size_t N> class array;
0016
0017 namespace hash2
0018 {
0019
0020
0021 template<std::size_t N> class digest;
0022
0023
0024
0025 namespace detail
0026 {
0027
0028 template<class T, class En = void> struct has_tuple_size: std::false_type
0029 {
0030 };
0031
0032 template<class T> struct has_tuple_size<T,
0033 typename std::enable_if<
0034 std::tuple_size<T>::value == std::tuple_size<T>::value
0035 >::type
0036 >: std::true_type
0037 {
0038 };
0039
0040 }
0041
0042
0043
0044 template<class T> struct has_constant_size: detail::has_tuple_size<T>
0045 {
0046 };
0047
0048 template<class T, std::size_t N> struct has_constant_size< boost::array<T, N> >: std::true_type
0049 {
0050 };
0051
0052 template<std::size_t N> struct has_constant_size< digest<N> >: std::true_type
0053 {
0054 };
0055
0056 template<class T> struct has_constant_size<T const>: has_constant_size<T>
0057 {
0058 };
0059
0060 }
0061 }
0062
0063 #endif