22template <
typename FloatingType>
42 normal_mantissa_mask = (1u << (mantissa_bits )) - 1,
43 denormal_mantissa_mask = (1u << (mantissa_bits - 1)) - 1,
45 special_nan_mantissa_mask = (1u << (mantissa_bits - 2))
55 static_assert(
sizeof(
components_type) ==
sizeof(
float),
"unexpected components size");
75 normal_mantissa_mask = (1ull << (mantissa_bits )) - 1,
76 denormal_mantissa_mask = (1ull << (mantissa_bits - 1)) - 1,
78 special_nan_mantissa_mask = (1ull << (mantissa_bits - 2))
88 static_assert(
sizeof(
components_type) ==
sizeof(
double),
"unexpected components size");
129 bool const value_is_nan_or_infinity =
components._exponent == (1u << floating_traits::exponent_bits) - 1;
130 if (!value_is_nan_or_infinity)
138 else if (
components._sign == 1 &&
components._mantissa == floating_traits::special_nan_mantissa_mask)
142 else if (
components._mantissa & floating_traits::special_nan_mantissa_mask)
181#define _In_fits_precision_(precision_arg) \
182 _When_(precision_arg <= 0, _Pre_satisfies_(_Curr_ > 9)) \
183 _When_(precision_arg > 0, _Pre_satisfies_(_Curr_ > 9 + precision_arg))
#define _Maybe_unsafe_(buffer_annotation, expr)
_In_ size_t scratch_buffer_count
bool __cdecl __acrt_fp_is_negative(double const &value)
_In_ size_t _In_ int _In_ int _In_ uint64_t _In_ __acrt_rounding_mode _Inout_ __crt_cached_ptd_host & ptd
__acrt_has_trailing_digits
__acrt_has_trailing_digits __cdecl __acrt_fltout(_In_ _CRT_DOUBLE value, _In_ unsigned precision, _In_ __acrt_precision_style precision_style, _Out_ STRFLT result, _Out_writes_z_(buffer_count) char *buffer, _In_ size_t buffer_count)
#define _In_fits_precision_(precision_arg)
__acrt_fp_class __cdecl __acrt_fp_classify(double const &value)
errno_t __cdecl __acrt_fp_strflt_to_string(_Out_writes_z_(buffer_count) char *buffer, _When_((digits > 0), _In_ _Pre_satisfies_(buffer_count > digits+1)) _When_((digits<=0), _In_ _Pre_satisfies_(buffer_count > 1)) _In_ size_t buffer_count, _In_ int digits, _Inout_ STRFLT value, _In_ __acrt_has_trailing_digits trailing_digits, _In_ __acrt_rounding_mode rounding_mode, _Inout_ __crt_cached_ptd_host &ptd)
_In_ size_t _In_ int _In_ int _In_ uint64_t _In_ __acrt_rounding_mode rounding_mode
floating_traits::components_type components_type
errno_t __cdecl __acrt_fp_format(double const *const value, char *const result_buffer, size_t const result_buffer_count, char *const scratch_buffer, size_t const scratch_buffer_count, int const format, int const precision, uint64_t const options, __acrt_rounding_mode rounding_mode, __crt_cached_ptd_host &ptd)
result_buffer_count char *const result_buffer
GLenum GLenum GLuint components
GLenum GLint GLint * precision
static const int digits[]
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
static float(__cdecl *square_half_float)(float x
#define _Out_writes_z_(s)
#define _Pre_satisfies_(e)
#define _Inout_updates_z_(s)
size_t const result_buffer_count
#define _CRT_END_C_HEADER
#define _CRT_BEGIN_C_HEADER
size_t const buffer_count