Numeric limits for int24 class

This commit is contained in:
Vladyslav Baranovskyi
2024-11-07 20:16:06 +02:00
parent 2a27e3049f
commit 9599a7aef8

View File

@@ -244,3 +244,45 @@ namespace OpenVulkano
}
};
}
namespace std
{
template <>
class numeric_limits<OpenVulkano::int24>
{
public:
static const bool is_specialized = true;
static constexpr OpenVulkano::int24 min() { return OpenVulkano::int24(0); }
static constexpr OpenVulkano::int24 max() { return OpenVulkano::int24(0xFFFFFF); }
static const int radix = 2;
static const int digits = 24;
static const int digits10 = 7;
static const bool is_signed = false;
static const bool is_integer = true;
static const bool is_exact = true;
static const bool traps = false;
static const bool is_modulo = true;
static const bool is_bounded = true;
static constexpr OpenVulkano::int24 epsilon() { return OpenVulkano::int24(1); }
static constexpr OpenVulkano::int24 round_error() { return OpenVulkano::int24(0); }
static const int min_exponent10 = 0;
static const int max_exponent10 = 0;
static const int min_exponent = 0;
static const int max_exponent = 0;
static const bool has_infinity = false;
static const bool has_quiet_NaN = false;
static const bool has_signaling_NaN = false;
static const bool is_iec559 = false;
static const bool has_denorm = false;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
// Not meaningful for int24...
static constexpr OpenVulkano::int24 denorm_min() { return OpenVulkano::int24(0); }
static constexpr OpenVulkano::int24 infinity() { return OpenVulkano::int24(0); }
static constexpr OpenVulkano::int24 quiet_NaN() { return OpenVulkano::int24(0); }
static constexpr OpenVulkano::int24 signaling_NaN() { return OpenVulkano::int24(0); }
};
}