21 if constexpr (std::numeric_limits<T>::is_signed)
23 if (std::numeric_limits<std::int8_t>::min() <= lb &&
24 ub <= std::numeric_limits<std::int8_t>::max())
27 if constexpr (
sizeof(T) >=
sizeof(std::int16_t))
29 if (std::numeric_limits<std::int16_t>::min() <= lb &&
30 ub <= std::numeric_limits<std::int16_t>::max())
34 if constexpr (
sizeof(T) >=
sizeof(std::int32_t))
36 if (std::numeric_limits<std::int32_t>::min() <= lb &&
37 ub <= std::numeric_limits<std::int32_t>::max())
45 if (ub <= (T)std::numeric_limits<std::uint8_t>::max())
48 if constexpr (
sizeof(T) >=
sizeof(std::uint16_t))
50 if (ub <= (T)std::numeric_limits<std::uint16_t>::max())
54 if constexpr (
sizeof(T) >=
sizeof(std::uint32_t))
56 if (ub <= (T)std::numeric_limits<std::uint32_t>::max())