• Home
  • Raw
  • Download

Lines Matching refs:Src

59 template <typename Dst, typename Src>
62 using SrcLimits = numeric_limits<Src>; in GetMaxConvertibleToFloat()
68 MaxExponent<Src>::value <= MaxExponent<Dst>::value) in GetMaxConvertibleToFloat()
70 Src max = SrcLimits::max() / 2 + (SrcLimits::is_integer ? 1 : 0); in GetMaxConvertibleToFloat()
71 while (max != static_cast<Src>(static_cast<Dst>(max))) { in GetMaxConvertibleToFloat()
513 template <typename Dst, typename Src, NumericConversionType conversion>
538 template <typename Dst, typename Src>
541 using SrcLimits = numeric_limits<Src>; in TestStrictComparison()
542 static_assert(StrictNumeric<Src>(SrcLimits::lowest()) < DstLimits::max(), ""); in TestStrictComparison()
543 static_assert(StrictNumeric<Src>(SrcLimits::lowest()) < SrcLimits::max(), ""); in TestStrictComparison()
544 static_assert(!(StrictNumeric<Src>(SrcLimits::lowest()) >= DstLimits::max()), in TestStrictComparison()
546 static_assert(!(StrictNumeric<Src>(SrcLimits::lowest()) >= SrcLimits::max()), in TestStrictComparison()
548 static_assert(StrictNumeric<Src>(SrcLimits::lowest()) <= DstLimits::max(), in TestStrictComparison()
550 static_assert(StrictNumeric<Src>(SrcLimits::lowest()) <= SrcLimits::max(), in TestStrictComparison()
552 static_assert(!(StrictNumeric<Src>(SrcLimits::lowest()) > DstLimits::max()), in TestStrictComparison()
554 static_assert(!(StrictNumeric<Src>(SrcLimits::lowest()) > SrcLimits::max()), in TestStrictComparison()
556 static_assert(StrictNumeric<Src>(SrcLimits::max()) > DstLimits::lowest(), ""); in TestStrictComparison()
557 static_assert(StrictNumeric<Src>(SrcLimits::max()) > SrcLimits::lowest(), ""); in TestStrictComparison()
558 static_assert(!(StrictNumeric<Src>(SrcLimits::max()) <= DstLimits::lowest()), in TestStrictComparison()
560 static_assert(!(StrictNumeric<Src>(SrcLimits::max()) <= SrcLimits::lowest()), in TestStrictComparison()
562 static_assert(StrictNumeric<Src>(SrcLimits::max()) >= DstLimits::lowest(), in TestStrictComparison()
564 static_assert(StrictNumeric<Src>(SrcLimits::max()) >= SrcLimits::lowest(), in TestStrictComparison()
566 static_assert(!(StrictNumeric<Src>(SrcLimits::max()) < DstLimits::lowest()), in TestStrictComparison()
568 static_assert(!(StrictNumeric<Src>(SrcLimits::max()) < SrcLimits::lowest()), in TestStrictComparison()
570 static_assert(StrictNumeric<Src>(static_cast<Src>(1)) == static_cast<Dst>(1), in TestStrictComparison()
572 static_assert(StrictNumeric<Src>(static_cast<Src>(1)) != static_cast<Dst>(0), in TestStrictComparison()
574 static_assert(StrictNumeric<Src>(SrcLimits::max()) != static_cast<Dst>(0), in TestStrictComparison()
576 static_assert(StrictNumeric<Src>(SrcLimits::max()) != DstLimits::lowest(), in TestStrictComparison()
579 !(StrictNumeric<Src>(static_cast<Src>(1)) != static_cast<Dst>(1)), ""); in TestStrictComparison()
581 !(StrictNumeric<Src>(static_cast<Src>(1)) == static_cast<Dst>(0)), ""); in TestStrictComparison()
605 template <typename Dst, typename Src>
606 struct TestNumericConversion<Dst, Src, SIGN_PRESERVING_VALUE_PRESERVING> {
608 using SrcLimits = numeric_limits<Src>; in Test()
616 MaxExponent<Dst>::value >= MaxExponent<Src>::value) || in Test()
619 MaxExponent<Dst>::value >= MaxExponent<Src>::value))), in Test()
622 TestStrictComparison<Dst, Src>(); in Test()
626 if (MaxExponent<Dst>::value > MaxExponent<Src>::value) { in Test()
627 if (MaxExponent<Dst>::value >= MaxExponent<Src>::value * 2 - 1) { in Test()
640 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(1)); in Test()
642 TEST_EXPECTED_RANGE(RANGE_VALID, SrcLimits::max() * static_cast<Src>(-1)); in Test()
646 } else if (numeric_limits<Src>::is_signed) { in Test()
647 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(-1)); in Test()
653 template <typename Dst, typename Src>
654 struct TestNumericConversion<Dst, Src, SIGN_PRESERVING_NARROW> {
656 using SrcLimits = numeric_limits<Src>; in Test()
660 static_assert(MaxExponent<Dst>::value <= MaxExponent<Src>::value, in Test()
663 TestStrictComparison<Dst, Src>(); in Test()
667 TEST_EXPECTED_VALUE(1, checked_dst + static_cast<Src>(1)); in Test()
671 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(1)); in Test()
674 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(-1)); in Test()
681 static_cast<Src>(DstLimits::max())); in Test()
683 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(DstLimits::max())); in Test()
687 static_cast<Src>(GetMaxConvertibleToFloat<Src, Dst>())); in Test()
688 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(DstLimits::lowest())); in Test()
691 TEST_EXPECTED_VALUE(-1, checked_dst - static_cast<Src>(1)); in Test()
693 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(-1)); in Test()
695 TEST_EXPECTED_FAILURE(checked_dst - static_cast<Src>(1)); in Test()
701 template <typename Dst, typename Src>
702 struct TestNumericConversion<Dst, Src, SIGN_TO_UNSIGN_WIDEN_OR_EQUAL> {
704 using SrcLimits = numeric_limits<Src>; in Test()
706 static_assert(MaxExponent<Dst>::value >= MaxExponent<Src>::value, in Test()
711 TestStrictComparison<Dst, Src>(); in Test()
715 TEST_EXPECTED_FAILURE(checked_dst + static_cast<Src>(-1)); in Test()
720 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(1)); in Test()
721 TEST_EXPECTED_RANGE(RANGE_UNDERFLOW, static_cast<Src>(-1)); in Test()
725 template <typename Dst, typename Src>
726 struct TestNumericConversion<Dst, Src, SIGN_TO_UNSIGN_NARROW> {
728 using SrcLimits = numeric_limits<Src>; in Test()
730 static_assert(MaxExponent<Dst>::value < MaxExponent<Src>::value, in Test()
735 TestStrictComparison<Dst, Src>(); in Test()
738 TEST_EXPECTED_VALUE(1, checked_dst + static_cast<Src>(1)); in Test()
740 TEST_EXPECTED_FAILURE(checked_dst + static_cast<Src>(-1)); in Test()
744 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(1)); in Test()
745 TEST_EXPECTED_RANGE(RANGE_UNDERFLOW, static_cast<Src>(-1)); in Test()
761 static_cast<Src>(DstLimits::max())); in Test()
763 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(DstLimits::max())); in Test()
767 static_cast<Src>(GetMaxConvertibleToFloat<Src, Dst>())); in Test()
768 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(DstLimits::lowest())); in Test()
776 template <typename Dst, typename Src>
777 struct TestNumericConversion<Dst, Src, UNSIGN_TO_SIGN_NARROW_OR_EQUAL> {
779 using SrcLimits = numeric_limits<Src>; in Test()
781 static_assert(MaxExponent<Dst>::value <= MaxExponent<Src>::value, in Test()
786 TestStrictComparison<Dst, Src>(); in Test()
789 TEST_EXPECTED_VALUE(1, checked_dst + static_cast<Src>(1)); in Test()
795 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(1)); in Test()