26 constexpr T get_max() {
29 "this type was not implemented in shambase::details::numeric_limits");
34 constexpr T get_min() {
37 "this type was not implemented in shambase::details::numeric_limits");
42 constexpr T get_epsilon() {
45 "this type was not implemented in shambase::details::numeric_limits");
52 constexpr T get_infty() {
55 "this type was not implemented in shambase::details::numeric_limits");
63#ifndef INT_ALIAS_LIM_DEFINED
std::int8_t i8
8 bit integer
std::uint8_t u8
8 bit unsigned integer
std::uint32_t u32
32 bit unsigned integer
std::uint64_t u64
64 bit unsigned integer
std::uint16_t u16
16 bit unsigned integer
std::int16_t i16
16 bit integer
std::int64_t i64
64 bit integer
std::int32_t i32
32 bit integer
namespace for basic c++ utilities
void throw_with_loc(std::string message, SourceLocation loc=SourceLocation{})
Throw an exception and append the source location to it.
constexpr i8 i8_max
i8 max value
constexpr u16 u16_max
u16 max value
constexpr u8 u8_min
u8 min value
constexpr u64 u64_max
u64 max value
constexpr u32 u32_max
u32 max value
constexpr u8 u8_max
u8 max value
constexpr i32 i32_max
i32 max value
constexpr i8 i8_min
i8 min value
constexpr u16 u16_min
u16 min value
constexpr i64 i64_min
i64 min value
constexpr i32 i32_min
i32 min value
constexpr i16 i16_min
i16 min value
constexpr i64 i64_max
i64 max value
constexpr u64 u64_min
u64 min value
constexpr i16 i16_max
i16 max value
constexpr u32 u32_min
u32 min value
static constexpr T infty
Infinity if the type can represent it.
static constexpr bool is_float
Whether the type is a float type.
static constexpr T min
The minimum value of the type (negative if float)
static constexpr T epsilon
The smallest value of the type that can be represented exactly.
static constexpr bool is_specialized
Whether the type is a specialized primitive type (i.e. not a float)
static constexpr T max
The maximum value of the type.