17#ifndef TOOLBOX_UTIL_INTTYPES_HPP
18#define TOOLBOX_UTIL_INTTYPES_HPP
23#include <boost/functional/hash.hpp>
26inline namespace util {
28template <
typename ValueT>
38template <
typename PolicyT>
42 template <
typename RhsT>
43 requires std::convertible_to<RhsT, ValueType>
60 constexpr
ValueType count() const noexcept {
return value_; }
106 value_ &= rhs.value_;
113 value_ |= rhs.value_;
120 value_ ^= rhs.value_;
127 value_ <<= rhs.value_;
134 value_ >>= rhs.value_;
240 template <
typename StreamT>
259template <
typename ValueT>
262template <
typename PolicyT>
265 boost::hash<typename PolicyT::ValueType>
hasher;
269template <
typename ValueT>
275 return ValueT{UnderlyingTraits::from_string(
sv)};
311template <
typename PolicyT>
315 return wrapper.
count();