660 {
662
663 bool all_numeric = true;
666 bool has_float = false;
667 bool has_float_beyond_precision = false;
668
669 for (const auto& elem : arr) {
670 if (!elem) {
671 all_numeric = false;
672 break;
673 }
674
675 if (elem->is_int()) {
676 auto val = elem->as_int();
677 if (val) {
679 min_val = (v < min_val) ? v : min_val;
680 max_val = (v > max_val) ? v : max_val;
681 } else {
682 all_numeric = false;
683 break;
684 }
685 } else if (elem->is_float()) {
686 has_float = true;
687 auto val = elem->as_float();
688 if (!val) {
689 all_numeric = false;
690 break;
691 }
692
693
696 has_float_beyond_precision = true;
697 }
698 } else {
699 all_numeric = false;
700 break;
701 }
702 }
703
705
706
707 if (has_float) {
708
709 if (has_float_beyond_precision) {
711 }
713 }
714
715
716 if (min_val >= 0 && max_val <= 255) {
718 }
719
720 if (min_val >= -32768 && max_val <= 32767) {
722 }
723
724
725
726 if (min_val >= -16777216 && max_val <= 16777216) {
728 }
729
731}
bool empty() const FL_NOEXCEPT
To bit_cast(const From &from) FL_NOEXCEPT
static bool float_bits_magnitude_exceeds_2_24(u32 bits) FL_NOEXCEPT
static constexpr T min() FL_NOEXCEPT
static constexpr T max() FL_NOEXCEPT