13#ifndef double_imanip_h
14#define double_imanip_h
22#include <fast_float/fast_float.h>
28 std::istream& is = *
in;
37 fast_float::from_chars(buf.c_str(), buf.c_str() + buf.size(), x);
41 "The argument: \n\n'",
45is not convertible to a valid double. At the very least it
46cannot be converted to one using the standard string-to-double
51 std::size_t n = std::distance(buf.c_str(), res.ptr);
52 while (n++ < buf.size()) is.unget();
63 mutable std::istream*
in;
Input manipulator class for doubles to enable nan and inf parsing.
friend const double_imanip & operator>>(std::istream &in, const double_imanip &dm)
const double_imanip & operator>>(double &x) const
Helper macros for debugging.
#define ARTS_USER_ERROR_IF(condition,...)
const double_imanip & operator>>(std::istream &in, const double_imanip &dm)