diff --git a/.gitignore b/.gitignore index 1566557..c9e8138 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,21 @@ build/* Testing/* .cache/ compile_commands.json + +# Visual Studio +.vs/ +Debug/ +Release/ +*.sln +*.vcxproj +*.vcxproj.filters +*.vcxproj.user +*.psess +*.vspx +*.vsp +*.diagsession +*.hint + +# VS CMake +/out/ +/CMakeSettings.json diff --git a/include/fast_float/fast_float.h b/include/fast_float/fast_float.h index 1cc25f4..04efa87 100644 --- a/include/fast_float/fast_float.h +++ b/include/fast_float/fast_float.h @@ -1,38 +1,10 @@ + #ifndef FASTFLOAT_FAST_FLOAT_H #define FASTFLOAT_FAST_FLOAT_H -#include - -#include "constexpr_feature_detect.h" +#include "float_common.h" namespace fast_float { -enum chars_format { - scientific = 1<<0, - fixed = 1<<2, - hex = 1<<3, - general = fixed | scientific -}; - -template -struct from_chars_result_t { - UC const * ptr; - std::errc ec; -}; -using from_chars_result = from_chars_result_t; - -template -struct parse_options_t { - constexpr explicit parse_options_t(chars_format fmt = chars_format::general, - UC dot = UC('.')) - : format(fmt), decimal_point(dot) {} - - /** Which number formats are accepted */ - chars_format format; - /** The character used as decimal point */ - UC decimal_point; -}; -using parse_options = parse_options_t; - /** * This function parses the character sequence [first,last) for a number. It parses floating-point numbers expecting * a locale-indepent format equivalent to what is used by std::strtod in the default ("C") locale. diff --git a/include/fast_float/float_common.h b/include/fast_float/float_common.h index 6901d7c..3439600 100644 --- a/include/fast_float/float_common.h +++ b/include/fast_float/float_common.h @@ -6,6 +6,40 @@ #include #include #include +#include + +#include "constexpr_feature_detect.h" + +namespace fast_float { + +enum chars_format { + scientific = 1 << 0, + fixed = 1 << 2, + hex = 1 << 3, + general = fixed | scientific +}; + +template +struct from_chars_result_t { + UC const* ptr; + std::errc ec; +}; +using from_chars_result = from_chars_result_t; + +template +struct parse_options_t { + constexpr explicit parse_options_t(chars_format fmt = chars_format::general, + UC dot = UC('.')) + : format(fmt), decimal_point(dot) {} + + /** Which number formats are accepted */ + chars_format format; + /** The character used as decimal point */ + UC decimal_point; +}; +using parse_options = parse_options_t; + +} #if FASTFLOAT_HAS_BIT_CAST #include diff --git a/include/fast_float/parse_number.h b/include/fast_float/parse_number.h index 726d761..4541d70 100644 --- a/include/fast_float/parse_number.h +++ b/include/fast_float/parse_number.h @@ -4,6 +4,7 @@ #include "ascii_number.h" #include "decimal_to_binary.h" #include "digit_comparison.h" +#include "float_common.h" #include #include