Minor fixes

This commit is contained in:
Daniel Lemire 2021-09-14 21:31:34 -04:00
parent 1b9150913e
commit b334317dd2
3 changed files with 8 additions and 2 deletions

View File

@ -124,7 +124,7 @@ struct span {
span(const T* _ptr, size_t _length) : ptr(_ptr), length(_length) {}
span() : ptr(nullptr), length(0) {}
constexpr size_t len() noexcept {
constexpr size_t len() const noexcept {
return length;
}

View File

@ -30,7 +30,12 @@ void all_32bit_values() {
std::cerr << "parsing error ? " << buffer << std::endl;
abort();
}
if(copysign(1,result_value) != copysign(1,v)) {
if (std::isnan(v)) {
if (!std::isnan(result_value)) {
std::cerr << "not nan" << buffer << std::endl;
abort();
}
} else if(copysign(1,result_value) != copysign(1,v)) {
std::cerr << "I got " << std::hexfloat << result_value << " but I was expecting " << v
<< std::endl;
abort();

View File

@ -59,6 +59,7 @@ bool test() {
const char * end = input.data() + input.size();
for(size_t i = 0; i < answers.size(); i++) {
T result_value;
while((begin < end) && (std::isspace(*begin))) { begin++; }
auto result = fast_float::from_chars(begin, end,
result_value);
if (result.ec != std::errc()) {