1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 04:57:44 +00:00

Everywhere: Use to_number<T> instead of to_{int,uint,float,double}

In a bunch of cases, this actually ends up simplifying the code as
to_number will handle something such as:

```
Optional<I> opt;
if constexpr (IsSigned<I>)
    opt = view.to_int<I>();
else
    opt = view.to_uint<I>();
```

For us.

The main goal here however is to have a single generic number conversion
API between all of the String classes.
This commit is contained in:
Shannon Booth 2023-12-23 15:59:14 +13:00 committed by Andreas Kling
parent a4ecc65398
commit e2e7c4d574
155 changed files with 397 additions and 412 deletions

View file

@ -578,14 +578,14 @@ TEST_CASE(invalid_hex_floats)
EXPECT_HEX_PARSE_TO_VALUE_AND_CONSUME_CHARS("0xCAPE", 0xCAp0, 4);
}
#define BENCHMARK_DOUBLE_PARSING(value, iterations) \
do { \
auto data = #value##sv; \
auto true_result = value; \
for (int i = 0; i < iterations * 10'000; ++i) { \
AK::taint_for_optimizer(data); \
EXPECT_EQ(data.to_double(), true_result); \
} \
#define BENCHMARK_DOUBLE_PARSING(value, iterations) \
do { \
auto data = #value##sv; \
auto true_result = value; \
for (int i = 0; i < iterations * 10'000; ++i) { \
AK::taint_for_optimizer(data); \
EXPECT_EQ(data.to_number<double>(), true_result); \
} \
} while (false)
BENCHMARK_CASE(one)