diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-12-19 17:12:05 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2021-02-25 13:45:49 +0300 |
commit | fea8db080353e408a38ad9b66b50b1c9dfaf96de (patch) | |
tree | 19c060eb9d6b66104f3bff3e5ea940dd7441c74d /libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx | |
parent | 5e527213a2430bb3018e5eebd909aef294edf9b5 (diff) |
Various fixes
Diffstat (limited to 'libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx')
-rw-r--r-- | libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx b/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx index 5ef2455..7bf2523 100644 --- a/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx +++ b/libxsd/xsd/cxx/parser/validating/xml-schema-pimpl.txx @@ -5,6 +5,7 @@ #include <locale> #ifdef XSD_CXX11 +# include <cmath> // std::isfinite # include <utility> // std::move #endif @@ -716,9 +717,13 @@ namespace xsd zc_istream<C> is (str); is.imbue (std::locale::classic ()); - //@@ TODO: now we accept scientific notations and INF/NaN. + // Note that std::isfinite() returns false for INF/NaN. // +#ifdef XSD_CXX11 + if (!(is >> value_ && std::isfinite (value_) && is.exhausted ())) +#else if (!(is >> value_ && is.exhausted ())) +#endif throw invalid_value<C> (bits::decimal<C> (), str); } |