Remove is_constant_evaluated() check

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
This commit is contained in:
Vladislav Shchapov 2023-05-24 20:17:52 +05:00 committed by Victor Zverovich
parent 19b17618a9
commit 5e988f8dfa
2 changed files with 10 additions and 32 deletions

View File

@ -3322,19 +3322,16 @@ template <typename Float> FMT_CONSTEXPR auto iceil(Float value) -> int {
auto max = (std::numeric_limits<int>::max)();
ignore_unused(min, max);
FMT_ASSERT(value >= min && value <= max, "value not in int range");
if (is_constant_evaluated()) {
do {
auto mid = min + static_cast<int>((static_cast<unsigned>(max) -
static_cast<unsigned>(min)) /
2);
if (mid < value)
min = mid;
else
max = mid;
} while (min + 1 != max);
return max;
}
return static_cast<int>(std::ceil(value));
do {
auto mid = min + static_cast<int>((static_cast<unsigned>(max) -
static_cast<unsigned>(min)) /
2);
if (mid < value)
min = mid;
else
max = mid;
} while (min + 1 != max);
return max;
}
template <typename Float>

View File

@ -524,22 +524,6 @@ TEST(format_impl_test, to_utf8) {
EXPECT_EQ(s.size(), u.size());
}
FMT_CONSTEXPR20 bool constexpr_iceil() {
for (double v : std::initializer_list<double>{
((std::numeric_limits<int>::min)() + 0.5),
-1.2,
-0.2,
0.0,
0.2,
1.2,
4.0,
((std::numeric_limits<int>::max)() - 0.5),
}) {
auto r = fmt::detail::iceil(v);
fmt::detail::ignore_unused(r);
}
return true;
}
TEST(format_impl_test, iceil) {
for (double v : std::initializer_list<double>{
((std::numeric_limits<int>::min)() + 0.5),
@ -553,7 +537,4 @@ TEST(format_impl_test, iceil) {
}) {
EXPECT_EQ(fmt::detail::iceil(v), static_cast<int>(std::ceil(v)));
}
FMT_CONSTEXPR20 auto result = constexpr_iceil();
EXPECT_TRUE(result);
}