163 static_assert(std::numeric_limits<T>::is_integer,
"T_must_be_integer");
164 static_assert(std::numeric_limits<T>::is_signed,
"T_must_be_signed");
165 static_assert(
sizeof(
T) * CHAR_BIT -
N >= 5,
"N_must_leave_four_bits_plus_sign");
176 const T nMax = (std::numeric_limits<T>::max() >>
N) / 10;
177 const T dMax = (std::numeric_limits<T>::max() >>
N) - (nMax * 10);
182 if (*
s <
'0' ||
'9' < *
s) {
184 if (*
s !=
'.' ||
s[1] ==
'\0') {
189 if (*
s <
'0' ||
'9' < *
s) {
194 for (--
s; *
s !=
'.'; --
s) {
196 frac = (frac + (
d <<
N)) / 10;
202 if (n > nMax || (n == nMax &&
d > dMax)) {
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d