123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- //
- // Copyright (c) 2019 Vinnie Falco ([email protected])
- //
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- //
- // Official repository: https://github.com/boostorg/json
- //
- #ifndef BOOST_JSON_IMPL_ERROR_HPP
- #define BOOST_JSON_IMPL_ERROR_HPP
- #include <boost/system/error_category.hpp>
- #include <type_traits>
- namespace boost {
- namespace system {
- template<>
- struct is_error_code_enum< ::boost::json::error >
- {
- static bool const value = true;
- };
- template<>
- struct is_error_condition_enum< ::boost::json::condition >
- {
- static bool const value = true;
- };
- } // system
- } // boost
- namespace std {
- template<>
- struct is_error_code_enum< ::boost::json::error >
- {
- static bool const value = true;
- };
- template<>
- struct is_error_condition_enum< ::boost::json::condition >
- {
- static bool const value = true;
- };
- } // std
- namespace boost {
- namespace json {
- namespace detail {
- struct error_code_category_t
- : system::error_category
- {
- constexpr
- error_code_category_t()
- : system::error_category(0xB9A9B9922177C772)
- {}
- BOOST_JSON_DECL
- const char*
- name() const noexcept override;
- BOOST_JSON_DECL
- char const*
- message( int ev, char* buf, std::size_t len ) const noexcept override;
- BOOST_JSON_DECL
- std::string
- message( int ev ) const override;
- BOOST_JSON_DECL
- system::error_condition
- default_error_condition( int ev ) const noexcept override;
- };
- extern
- BOOST_JSON_DECL
- error_code_category_t error_code_category;
- struct error_condition_category_t
- : system::error_category
- {
- constexpr
- error_condition_category_t()
- : system::error_category(0x37CEF5A036D24FD1)
- {}
- BOOST_JSON_DECL
- const char*
- name() const noexcept override;
- BOOST_JSON_DECL
- char const*
- message( int ev, char*, std::size_t ) const noexcept override;
- BOOST_JSON_DECL
- std::string
- message( int cv ) const override;
- };
- extern
- BOOST_JSON_DECL
- error_condition_category_t error_condition_category;
- } // namespace detail
- inline
- BOOST_SYSTEM_CONSTEXPR
- system::error_code
- make_error_code(error e) noexcept
- {
- return system::error_code(
- static_cast<std::underlying_type<error>::type>(e),
- detail::error_code_category );
- }
- inline
- BOOST_SYSTEM_CONSTEXPR
- system::error_condition
- make_error_condition(condition c) noexcept
- {
- return system::error_condition(
- static_cast<std::underlying_type<condition>::type>(c),
- detail::error_condition_category );
- }
- } // namespace json
- } // namespace boost
- #endif
|