#pragma once #include "detail/cast_to_unsigned_integer.hpp" // cast a signed integer with range [-x, x) to range [0, 2x) struct cast_to_unsigned_integer_fn { template >> constexpr auto operator()(I n) const { return detail::cast_to_unsigned_integer_impl(n); } }; static constexpr auto cast_to_unsigned_integer = cast_to_unsigned_integer_fn{};