@@ -331,37 +331,36 @@ template <typename UC>
331331inline FASTFLOAT_CONSTEXPR14 bool
332332fastfloat_strncasecmp3 (UC const *actual_mixedcase,
333333 UC const *expected_lowercase) {
334- uint64_t mask{0 };
335- FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 1 ) { mask = 0x2020202020202020 ; }
336- else FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 2 ) {
337- mask = 0x0020002000200020 ;
338- }
339- else FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 4 ) {
340- mask = 0x0000002000000020 ;
341- }
342- else {
343- return false ;
344- }
345-
346- uint64_t val1{0 }, val2{0 };
347334 if (cpp20_and_in_constexpr ()) {
348- for (size_t i = 0 ; i < 3 ; i++ ) {
335+ for (uint_fast8_t i = 0 ; i != 3 ; ++i ) {
349336 if ((actual_mixedcase[i] | 32 ) != expected_lowercase[i]) {
350337 return false ;
351338 }
352339 return true ;
353340 }
354341 } else {
342+ uint64_t val1, val2;
343+ uint64_t mask;
344+ FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 1 ) { mask = 0x2020202020202020 ; }
345+ else FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 2 ) {
346+ mask = 0x0020002000200020 ;
347+ }
348+ else FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 4 ) {
349+ mask = 0x0000002000000020 ;
350+ }
351+ else {
352+ return false ;
353+ }
355354 FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 1 || sizeof (UC) == 2 ) {
356- ::memcpy (&val1, actual_mixedcase, 3 * sizeof (UC));
357- ::memcpy (&val2, expected_lowercase, 3 * sizeof (UC));
355+ std ::memcpy (&val1, actual_mixedcase, 3 * sizeof (UC));
356+ std ::memcpy (&val2, expected_lowercase, 3 * sizeof (UC));
358357 val1 |= mask;
359358 val2 |= mask;
360359 return val1 == val2;
361360 }
362361 else FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 4 ) {
363- ::memcpy (&val1, actual_mixedcase, 2 * sizeof (UC));
364- ::memcpy (&val2, expected_lowercase, 2 * sizeof (UC));
362+ std ::memcpy (&val1, actual_mixedcase, 2 * sizeof (UC));
363+ std ::memcpy (&val2, expected_lowercase, 2 * sizeof (UC));
365364 val1 |= mask;
366365 if (val1 != val2) {
367366 return false ;
@@ -380,28 +379,28 @@ template <typename UC>
380379inline FASTFLOAT_CONSTEXPR14 bool
381380fastfloat_strncasecmp5 (UC const *actual_mixedcase,
382381 UC const *expected_lowercase) {
383- uint64_t mask{0 };
384- uint64_t val1{0 }, val2{0 };
385382 if (cpp20_and_in_constexpr ()) {
386- for (size_t i = 0 ; i < 5 ; i++ ) {
383+ for (uint_fast8_t i = 0 ; i != 5 ; ++i ) {
387384 if ((actual_mixedcase[i] | 32 ) != expected_lowercase[i]) {
388385 return false ;
389386 }
390387 return true ;
391388 }
392389 } else {
390+ uint64_t mask;
391+ uint64_t val1, val2;
393392 FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 1 ) {
394393 mask = 0x2020202020202020 ;
395- ::memcpy (&val1, actual_mixedcase, 5 * sizeof (UC));
396- ::memcpy (&val2, expected_lowercase, 5 * sizeof (UC));
394+ std ::memcpy (&val1, actual_mixedcase, 5 * sizeof (UC));
395+ std ::memcpy (&val2, expected_lowercase, 5 * sizeof (UC));
397396 val1 |= mask;
398397 val2 |= mask;
399398 return val1 == val2;
400399 }
401400 else FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 2 ) {
402401 mask = 0x0020002000200020 ;
403- ::memcpy (&val1, actual_mixedcase, 4 * sizeof (UC));
404- ::memcpy (&val2, expected_lowercase, 4 * sizeof (UC));
402+ std ::memcpy (&val1, actual_mixedcase, 4 * sizeof (UC));
403+ std ::memcpy (&val2, expected_lowercase, 4 * sizeof (UC));
405404 val1 |= mask;
406405 if (val1 != val2) {
407406 return false ;
@@ -410,14 +409,14 @@ fastfloat_strncasecmp5(UC const *actual_mixedcase,
410409 }
411410 else FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 4 ) {
412411 mask = 0x0000002000000020 ;
413- ::memcpy (&val1, actual_mixedcase, 2 * sizeof (UC));
414- ::memcpy (&val2, expected_lowercase, 2 * sizeof (UC));
412+ std ::memcpy (&val1, actual_mixedcase, 2 * sizeof (UC));
413+ std ::memcpy (&val2, expected_lowercase, 2 * sizeof (UC));
415414 val1 |= mask;
416415 if (val1 != val2) {
417416 return false ;
418417 }
419- ::memcpy (&val1, actual_mixedcase + 2 , 2 * sizeof (UC));
420- ::memcpy (&val2, expected_lowercase + 2 , 2 * sizeof (UC));
418+ std ::memcpy (&val1, actual_mixedcase + 2 , 2 * sizeof (UC));
419+ std ::memcpy (&val2, expected_lowercase + 2 , 2 * sizeof (UC));
421420 val1 |= mask;
422421 if (val1 != val2) {
423422 return false ;
@@ -437,7 +436,7 @@ template <typename UC>
437436inline FASTFLOAT_CONSTEXPR14 bool
438437fastfloat_strncasecmp (UC const *actual_mixedcase, UC const *expected_lowercase,
439438 uint_fast8_t const length) noexcept {
440- uint64_t mask{ 0 } ;
439+ uint64_t mask;
441440 FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 1 ) { mask = 0x2020202020202020 ; }
442441 else FASTFLOAT_IF_CONSTEXPR17 (sizeof (UC) == 2 ) {
443442 mask = 0x0020002000200020 ;
@@ -450,17 +449,16 @@ fastfloat_strncasecmp(UC const *actual_mixedcase, UC const *expected_lowercase,
450449 }
451450
452451 if (cpp20_and_in_constexpr ()) {
453- for (size_t i = 0 ; i < length; i++ ) {
452+ for (uint_fast8_t i = 0 ; i != length; ++i ) {
454453 if ((actual_mixedcase[i] | 32 ) != expected_lowercase[i]) {
455454 return false ;
456455 }
457456 return true ;
458457 }
459458 } else {
460- uint64_t val1{0 }, val2{0 };
461- size_t sz{8 / (sizeof (UC))};
462- for (size_t i = 0 ; i < length; i += sz) {
463- val1 = val2 = 0 ;
459+ uint64_t val1, val2;
460+ constexpr uint_fast8_t sz{8 / (sizeof (UC))};
461+ for (uint_fast8_t i = 0 ; i != length; i += sz) {
464462 sz = std::min (sz, length - i);
465463 ::memcpy (&val1, actual_mixedcase + i, sz * sizeof (UC));
466464 ::memcpy (&val2, expected_lowercase + i, sz * sizeof (UC));
0 commit comments