diff --git a/src/json.hpp b/src/json.hpp index 2457f5d7..8e14b5cd 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -797,6 +797,16 @@ public: } }; +// taken from ranges-v3 +template <typename T> +struct static_const +{ + static constexpr T value{}; +}; + +template <typename T> +constexpr T static_const<T>::value; + /*! @brief helper class to create locales with decimal point @@ -818,21 +828,10 @@ struct DecimalSeparator : std::numpunct<char> }; } -// taken from ranges-v3 -// TODO add doc -template <typename T> -struct static_const -{ - static constexpr T value{}; -}; - -template <typename T> -constexpr T static_const<T>::value; - inline namespace { -constexpr const auto & to_json = static_const<detail::to_json_fn>::value; -constexpr const auto & from_json = static_const<detail::from_json_fn>::value; +constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value; +constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 4dbeda8a..f4d0cf8d 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -797,6 +797,16 @@ public: } }; +// taken from ranges-v3 +template <typename T> +struct static_const +{ + static constexpr T value{}; +}; + +template <typename T> +constexpr T static_const<T>::value; + /*! @brief helper class to create locales with decimal point @@ -818,21 +828,10 @@ struct DecimalSeparator : std::numpunct<char> }; } -// taken from ranges-v3 -// TODO add doc -template <typename T> -struct static_const -{ - static constexpr T value{}; -}; - -template <typename T> -constexpr T static_const<T>::value; - inline namespace { -constexpr const auto & to_json = static_const<detail::to_json_fn>::value; -constexpr const auto & from_json = static_const<detail::from_json_fn>::value; +constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value; +constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value; } // default JSONSerializer template argument, doesn't care about template argument