4#ifndef TETL_TYPE_TRAITS_SMALLEST_SIZE_T_HPP
5#define TETL_TYPE_TRAITS_SMALLEST_SIZE_T_HPP
11template <
unsigned long long N>
12consteval auto determine_smallest_size_t()
14 if constexpr (N <=
static_cast<
unsigned char>(-1)) {
15 return static_cast<
unsigned char>(0);
16 }
else if constexpr (N <=
static_cast<
unsigned short>(-1)) {
17 return static_cast<
unsigned short>(0);
18 }
else if constexpr (N <=
static_cast<
unsigned int>(-1)) {
19 return static_cast<
unsigned int>(0);
20 }
else if constexpr (N <=
static_cast<
unsigned long>(-1)) {
21 return static_cast<
unsigned long>(0);
23 return static_cast<
unsigned long long>(0);
31template <
unsigned long long N>
33 using type =
decltype(detail::determine_smallest_size_t<N>());
37template <
unsigned long long N>
Definition adjacent_find.hpp:9
Smallest unsigned integer type that can represent values in the range [0, N].
Definition smallest_size_t.hpp:32