#define BOOST_JSON_DETAIL_IMPL_EXCEPT_IPP
#include <boost/json/detail/except.hpp>
-#ifndef BOOST_JSON_STANDALONE
-# include <boost/version.hpp>
-# include <boost/throw_exception.hpp>
-#elif defined(BOOST_JSON_STANDALONE) && defined(BOOST_NO_EXCEPTIONS)
-# include <exception>
-#endif
+#include <boost/version.hpp>
+#include <boost/throw_exception.hpp>
#include <stdexcept>
-#if defined(BOOST_JSON_STANDALONE)
-namespace boost {
-
-#if defined(BOOST_NO_EXCEPTIONS)
-// When exceptions are disabled
-// in standalone, you must provide
-// this function.
-BOOST_NORETURN
-void
-throw_exception(std::exception const&);
-#endif
-
-} // boost
-#endif
-
BOOST_JSON_NS_BEGIN
namespace detail {
-#if defined(BOOST_JSON_STANDALONE) && \
- ! defined(BOOST_NO_EXCEPTIONS)
-// this is in the json namespace to avoid
-// colliding with boost::throw_exception
-template<class E>
-void
-BOOST_NORETURN
-throw_exception(E e)
-{
- throw e;
-}
-#endif
-
void
throw_bad_alloc(
source_location const& loc)
{
- (void)loc;
throw_exception(
- std::bad_alloc()
-#if BOOST_VERSION >= 107300
- , loc
-#endif
- );
+ std::bad_alloc(),
+ loc);
}
void
char const* what,
source_location const& loc)
{
- (void)loc;
throw_exception(
- std::length_error(what)
-#if BOOST_VERSION >= 107300
- , loc
-#endif
- );
+ std::length_error(what),
+ loc);
}
void
char const* what,
source_location const& loc)
{
- (void)loc;
throw_exception(
- std::invalid_argument(what)
-#if BOOST_VERSION >= 107300
- , loc
-#endif
- );
+ std::invalid_argument(what),
+ loc);
}
void
throw_out_of_range(
source_location const& loc)
{
- (void)loc;
throw_exception(
std::out_of_range(
- "out of range")
-#if BOOST_VERSION >= 107300
- , loc
-#endif
- );
+ "out of range"),
+ loc);
}
void
error_code const& ec,
source_location const& loc)
{
- (void)loc;
throw_exception(
- system_error(ec)
-#if BOOST_VERSION >= 107300
- , loc
-#endif
- );
+ system_error(ec),
+ loc);
}
} // detail