2
0
mirror of https://github.com/boostorg/json.git synced 2026-02-18 02:02:12 +00:00

Refactor includes

This commit is contained in:
Vinnie Falco
2019-11-12 14:30:49 -08:00
parent 548d48ef22
commit 4e64f4fa58
39 changed files with 185 additions and 332 deletions

View File

@@ -14,7 +14,6 @@
#include <boost/json/error.hpp>
#include <boost/json/detail/number.hpp>
#include <boost/json/detail/static_stack.hpp>
#include <boost/json/detail/string.hpp>
#include <string>
#include <vector>
#include <stdint.h>

View File

@@ -11,7 +11,6 @@
#define BOOST_JSON_BLOCK_STORAGE_HPP
#include <boost/json/detail/config.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/storage.hpp>
#include <cstdint>
#include <new>

View File

@@ -1,21 +0,0 @@
//
// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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/vinniefalco/json
//
#ifndef BOOST_JSON_DETAIL_ASSERT_HPP
#define BOOST_JSON_DETAIL_ASSERT_HPP
#ifndef BOOST_JSON_STANDALONE
# include <boost/assert.hpp>
# define BOOST_JSON_ASSERT BOOST_ASSERT
#else
# include <cassert>
# define BOOST_JSON_ASSERT assert
#endif
#endif

View File

@@ -10,7 +10,7 @@
#ifndef BOOST_JSON_DETAIL_BUFFER_HPP
#define BOOST_JSON_DETAIL_BUFFER_HPP
#include <boost/json/detail/string.hpp>
#include <boost/json/detail/config.hpp>
#include <cstring>
namespace boost {

View File

@@ -11,6 +11,16 @@
#define BOOST_JSON_DETAIL_CONFIG_HPP
#include <boost/config.hpp>
#ifndef BOOST_JSON_STANDALONE
# include <boost/assert.hpp>
# include <boost/system/error_code.hpp>
# include <boost/system/system_error.hpp>
# include <boost/utility/string_view.hpp>
#else
# include <cassert>
# include <string_view>
# include <system_error>
#endif
#ifndef BOOST_JSON_STANDALONE
# if defined(GENERATING_DOCUMENTATION)
@@ -58,6 +68,12 @@
# define BOOST_JSON_THROW(x) do{}while(0)
#endif
#ifndef BOOST_JSON_STANDALONE
# define BOOST_JSON_ASSERT BOOST_ASSERT
#else
# define BOOST_JSON_ASSERT assert
#endif
#define BOOST_JSON_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
// optimizations
@@ -95,7 +111,137 @@
namespace boost {
namespace json {
using size_type = unsigned long;
namespace detail {
template<class...>
struct make_void
{
using type =void;
};
template<class... Ts>
using void_t = typename
make_void<Ts...>::type;
template<class T>
struct remove_const
{
using type = T;
};
template<class T>
struct remove_const<T const>
{
using type = T;
};
template<class T>
struct remove_reference
{
using type = T;
};
template<class T>
struct remove_reference<T&>
{
using type = T;
};
template<class T>
constexpr
typename remove_reference<T>::type&&
move(T&& t) noexcept
{
return static_cast<typename
remove_reference<T>::type&&>(t);
}
template<class T, class U>
inline
T
exchange(T& t, U u) noexcept
{
T v = move(t);
t = move(u);
return v;
}
template<class T>
using is_string_viewish = typename std::enable_if<
std::is_convertible<
T const&, string_view>::value &&
! std::is_convertible<
T const&, char const*>::value
>::type;
/* This is a derivative work, original copyright:
Copyright Eric Niebler 2013-present
Use, modification and distribution is subject to 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)
Project home: https://github.com/ericniebler/range-v3
*/
template<typename T>
struct static_const
{
static constexpr T value {};
};
template<typename T>
constexpr T static_const<T>::value;
#define BOOST_JSON_INLINE_VARIABLE(name, type) \
namespace \
{ \
constexpr auto& name = \
::boost::json::detail::static_const<type>::value; \
}
struct primary_template
{
};
template<class T>
using is_specialized =
std::integral_constant<bool,
! std::is_base_of<primary_template, T>::value>;
template<class T>
using remove_cr =
typename remove_const<
typename remove_reference<T>::type>::type;
} // detail
#ifndef BOOST_JSON_STANDALONE
/// The type of string view used by the library
using string_view = boost::string_view;
/// The type of error code used by the library
using error_code = boost::system::error_code;
/// The type of system error thrown by the library
using system_error = boost::system::system_error;
/// The type of error category used by the library
using error_category = boost::system::error_category;
/// The type of error condition used by the library
using error_condition = boost::system::error_condition;
#else
using string_view = std::string_view;
using error_code = std::error_code;
using system_error = std::system_error;
using error_category = std::error_category;
using error_condition = std::error_condition;
#endif
} // json
} // boost

View File

@@ -1,33 +0,0 @@
//
// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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/vinniefalco/json
//
#ifndef BOOST_JSON_DETAIL_EXCHANGE_HPP
#define BOOST_JSON_DETAIL_EXCHANGE_HPP
#include <utility>
namespace boost {
namespace json {
namespace detail {
template<class T, class U>
inline
T
exchange(T& t, U u) noexcept
{
T v = std::move(t);
t = std::move(u);
return v;
}
} // detail
} // json
} // boost
#endif

View File

@@ -1,49 +0,0 @@
//
// Copyright (c) 2019 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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/vinniefalco/json
//
#ifndef BOOST_JSON_DETAIL_INLINE_VARIABLE_HPP
#define BOOST_JSON_DETAIL_INLINE_VARIABLE_HPP
/* This is a derivative work, original copyright:
Copyright Eric Niebler 2013-present
Use, modification and distribution is subject to 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)
Project home: https://github.com/ericniebler/range-v3
*/
namespace boost {
namespace json {
namespace detail {
template<typename T>
struct static_const
{
static constexpr T value {};
};
template<typename T>
constexpr T static_const<T>::value;
#define BOOST_JSON_INLINE_VARIABLE(name, type) \
namespace \
{ \
constexpr auto& name = \
::boost::json::detail::static_const<type>::value; \
}
} // detail
} // json
} // boost
#endif

View File

@@ -1,37 +0,0 @@
//
// Copyright (c) 2018-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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/vinniefalco/json
//
#ifndef BOOST_JSON_DETAIL_IS_SPECIALIZED_HPP
#define BOOST_JSON_DETAIL_IS_SPECIALIZED_HPP
#include <type_traits>
namespace boost {
namespace json {
namespace detail {
struct primary_template
{
};
template<class T>
using is_specialized =
std::integral_constant<bool,
! std::is_base_of<primary_template, T>::value>;
template<class T>
using remove_cr =
typename std::remove_const<
typename std::remove_reference<T>::type>::type;
} // detail
} // json
} // boost
#endif

View File

@@ -1,31 +0,0 @@
//
// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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/vinniefalco/json
//
#ifndef BOOST_JSON_DETAIL_MAKE_VOID_HPP
#define BOOST_JSON_DETAIL_MAKE_VOID_HPP
namespace boost {
namespace json {
namespace detail {
template<class...>
struct make_void
{
using type =void;
};
template<class... Ts>
using void_t = typename
make_void<Ts...>::type;
} // detail
} // json
} // boost
#endif

View File

@@ -11,7 +11,6 @@
#define BOOST_JSON_DETAIL_NUMBER_IPP
#include <boost/json/detail/number.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/sse2.hpp>
namespace boost {

View File

@@ -12,7 +12,6 @@
#include <boost/json/detail/config.hpp>
#include <boost/json/storage_ptr.hpp>
#include <boost/json/detail/assert.hpp>
#include <cstdlib>
#include <utility>

View File

@@ -22,7 +22,7 @@
#ifndef BOOST_JSON_DETAIL_RYU_DETAIL_COMMON_HPP
#define BOOST_JSON_DETAIL_RYU_DETAIL_COMMON_HPP
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/config.hpp>
#include <stdint.h>
#include <string.h>

View File

@@ -22,8 +22,8 @@
#ifndef BOOST_JSON_DETAIL_RYU_DETAIL_D2S_HPP
#define BOOST_JSON_DETAIL_RYU_DETAIL_D2S_HPP
#include <boost/json/detail/config.hpp>
#include <boost/json/detail/ryu/detail/common.hpp>
#include <boost/json/detail/assert.hpp>
#include <cstdint>
// Only include the full table if we're not optimizing for size.

View File

@@ -22,6 +22,7 @@
#ifndef BOOST_JSON_DETAIL_RYU_DETAIL_D2S_FULL_TABLE_HPP
#define BOOST_JSON_DETAIL_RYU_DETAIL_D2S_FULL_TABLE_HPP
#include <boost/json/detail/config.hpp>
#include <cstdint>
namespace boost {

View File

@@ -22,9 +22,10 @@
#ifndef BOOST_JSON_DETAIL_RYU_DETAIL_D2S_INTRINSICS_HPP
#define BOOST_JSON_DETAIL_RYU_DETAIL_D2S_INTRINSICS_HPP
#include <boost/json/detail/config.hpp>
// This sets BOOST_JSON_RYU_32_BIT_PLATFORM as a side effect if applicable.
#include <boost/json/detail/ryu/detail/common.hpp>
#include <boost/json/detail/assert.hpp>
#include <stdint.h>
#if defined(BOOST_JSON_RYU_HAS_64_BIT_INTRINSICS)

View File

@@ -22,6 +22,8 @@
#ifndef BOOST_JSON_DETAIL_RYU_DETAIL_DIGIT_TABLE_HPP
#define BOOST_JSON_DETAIL_RYU_DETAIL_DIGIT_TABLE_HPP
#include <boost/json/detail/config.hpp>
namespace boost {
namespace json {
namespace detail {

View File

@@ -35,7 +35,6 @@
#define BOOST_JSON_DETAIL_RYU_IMPL_D2S_IPP
#include <boost/json/detail/ryu/ryu.hpp>
#include <boost/json/detail/assert.hpp>
#include <cstdint>
#include <cstdlib>
#include <cstring>

View File

@@ -12,7 +12,6 @@
#include <boost/json/detail/config.hpp>
#include <boost/json/storage_ptr.hpp>
#include <boost/json/detail/assert.hpp>
#include <new>
#include <utility>

View File

@@ -1,46 +0,0 @@
//
// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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/vinniefalco/json
//
#ifndef BOOST_JSON_DETAIL_STRING_HPP
#define BOOST_JSON_DETAIL_STRING_HPP
#ifndef BOOST_JSON_STANDALONE
# include <boost/utility/string_view.hpp>
#else
# include <string_view>
#endif
namespace boost {
namespace json {
#ifndef BOOST_JSON_STANDALONE
/// The type of string view used by the library
using string_view = boost::string_view;
#else
using string_view = std::string_view;
#endif
namespace detail {
template<class T>
using is_viewy = typename std::enable_if<
std::is_convertible<
T const&, string_view>::value &&
! std::is_convertible<
T const&, char const*>::value
>::type;
} // detail
} // json
} // boost
#endif

View File

@@ -1,47 +0,0 @@
//
// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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/vinniefalco/json
//
#ifndef BOOST_JSON_DETAIL_SYSTEM_ERROR_HPP
#define BOOST_JSON_DETAIL_SYSTEM_ERROR_HPP
#ifndef BOOST_JSON_STANDALONE
# include <boost/system/error_code.hpp>
# include <boost/system/system_error.hpp>
#else
# include <system_error>
#endif
namespace boost {
namespace json {
#ifndef BOOST_JSON_STANDALONE
/// The type of error code used by the library
using error_code = boost::system::error_code;
/// The type of system error thrown by the library
using system_error = boost::system::system_error;
/// The type of error category used by the library
using error_category = boost::system::error_category;
/// The type of error condition used by the library
using error_condition = boost::system::error_condition;
#else
using error_code = std::error_code;
using system_error = std::system_error;
using error_category = std::error_category;
using error_condition = std::error_condition;
#endif
} // json
} // boost
#endif

View File

@@ -11,7 +11,6 @@
#define BOOST_JSON_DETAIL_VALUE_HPP
#include <boost/json/error.hpp>
#include <boost/json/detail/make_void.hpp>
#include <type_traits>
namespace boost {

View File

@@ -11,7 +11,6 @@
#define BOOST_JSON_ERROR_HPP
#include <boost/json/detail/config.hpp>
#include <boost/json/detail/system_error.hpp>
namespace boost {
namespace json {

View File

@@ -11,9 +11,7 @@
#define BOOST_JSON_IMPL_ARRAY_IPP
#include <boost/json/array.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/except.hpp>
#include <boost/json/detail/exchange.hpp>
#include <boost/pilfer.hpp>
#include <cstdlib>
#include <limits>

View File

@@ -12,7 +12,6 @@
#include <boost/json/basic_parser.hpp>
#include <boost/json/error.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/buffer.hpp>
#include <boost/json/detail/sse2.hpp>

View File

@@ -12,8 +12,6 @@
#include <boost/json/value.hpp>
#include <boost/json/detail/except.hpp>
#include <boost/json/detail/exchange.hpp>
#include <boost/json/detail/string.hpp>
#include <iterator>
#include <cmath>
#include <type_traits>

View File

@@ -11,9 +11,7 @@
#define BOOST_JSON_IMPL_OBJECT_IPP
#include <boost/json/object.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/except.hpp>
#include <boost/json/detail/exchange.hpp>
#include <algorithm>
#include <cmath>
#include <cstdlib>

View File

@@ -12,7 +12,6 @@
#include <boost/json/parser.hpp>
#include <boost/json/error.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/except.hpp>
#include <cstring>
#include <stdexcept>
@@ -444,8 +443,8 @@ on_key_part(
BOOST_JSON_THROW(
detail::key_too_large_exception());
push_chars(s);
key_size_ += static_cast<size_type>(
s.size());
key_size_ += static_cast<
std::uint32_t>(s.size());
}
void
@@ -473,8 +472,8 @@ on_string_part(
BOOST_JSON_THROW(
detail::string_too_large_exception());
push_chars(s);
str_size_ += static_cast<size_type>(
s.size());
str_size_ += static_cast<
std::uint32_t>(s.size());
}
void

View File

@@ -10,7 +10,6 @@
#ifndef BOOST_JSON_IMPL_STRING_IPP
#define BOOST_JSON_IMPL_STRING_IPP
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/except.hpp>
#include <algorithm>
#include <new>

View File

@@ -12,7 +12,6 @@
#include <boost/json/error.hpp>
#include <boost/json/detail/except.hpp>
#include <boost/json/detail/make_void.hpp>
#include <limits>
#include <type_traits>

View File

@@ -11,7 +11,6 @@
#define BOOST_JSON_KIND_HPP
#include <boost/json/detail/config.hpp>
#include <boost/json/detail/inline_variable.hpp>
namespace boost {
namespace json {

View File

@@ -12,8 +12,6 @@
#include <boost/json/detail/config.hpp>
#include <boost/json/storage_ptr.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/string.hpp>
#include <boost/pilfer.hpp>
#include <cstdlib>
#include <initializer_list>

View File

@@ -17,7 +17,6 @@
#include <boost/json/string.hpp>
#include <boost/json/detail/except.hpp>
#include <boost/json/detail/raw_stack.hpp>
#include <boost/json/detail/string.hpp>
#include <new>
#include <string>
#include <type_traits>

View File

@@ -14,7 +14,6 @@
#include <boost/json/value.hpp>
#include <boost/json/detail/format.hpp>
#include <boost/json/detail/static_stack.hpp>
#include <boost/json/detail/string.hpp>
#include <iosfwd>
namespace boost {

View File

@@ -11,8 +11,6 @@
#define BOOST_JSON_STORAGE_PTR_HPP
#include <boost/json/detail/config.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/exchange.hpp>
#include <boost/json/storage.hpp>
#include <cstddef>
#include <type_traits>

View File

@@ -12,8 +12,6 @@
#include <boost/json/detail/config.hpp>
#include <boost/json/storage_ptr.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/json/detail/string.hpp>
#include <boost/pilfer.hpp>
#include <algorithm>
#include <initializer_list>
@@ -1890,7 +1888,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
string&
@@ -1904,7 +1902,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
string&
@@ -2000,7 +1998,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
string&
@@ -2012,7 +2010,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
string&
@@ -2054,7 +2052,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
string&
@@ -2270,7 +2268,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
string&
@@ -2281,7 +2279,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
string&
@@ -2292,7 +2290,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
string&
@@ -2414,7 +2412,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
size_type
@@ -2462,7 +2460,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
size_type
@@ -2510,7 +2508,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
size_type
@@ -2558,7 +2556,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
size_type
@@ -2606,7 +2604,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
size_type
@@ -2654,7 +2652,7 @@ public:
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
size_type
@@ -2730,7 +2728,7 @@ operator==(string const& lhs, string const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator==(string const& lhs, T const& rhs)
@@ -2740,7 +2738,7 @@ bool operator==(string const& lhs, T const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator==(T const& lhs, string const& rhs)
@@ -2759,7 +2757,7 @@ operator!=(string const& lhs, string const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator!=(string const& lhs, T const& rhs)
@@ -2769,7 +2767,7 @@ bool operator!=(string const& lhs, T const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator!=(T const& lhs, string const& rhs)
@@ -2788,7 +2786,7 @@ operator<(string const& lhs, string const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator<(string const& lhs, T const& rhs)
@@ -2798,7 +2796,7 @@ bool operator<(string const& lhs, T const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator<(T const& lhs, string const& rhs)
@@ -2817,7 +2815,7 @@ operator<=(string const& lhs, string const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator<=(string const& lhs, T const& rhs)
@@ -2827,7 +2825,7 @@ bool operator<=(string const& lhs, T const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator<=(T const& lhs, string const& rhs)
@@ -2846,7 +2844,7 @@ operator>=(string const& lhs, string const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator>=(string const& lhs, T const& rhs)
@@ -2856,7 +2854,7 @@ bool operator>=(string const& lhs, T const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator>=(T const& lhs, string const& rhs)
@@ -2875,7 +2873,7 @@ operator>(string const& lhs, string const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator>(string const& lhs, T const& rhs)
@@ -2885,7 +2883,7 @@ bool operator>(string const& lhs, T const& rhs)
template<class T
#ifndef GENERATING_DOCUMENTATION
,class = detail::is_viewy<T>
,class = detail::is_string_viewish<T>
#endif
>
bool operator>(T const& lhs, string const& rhs)

View File

@@ -17,9 +17,7 @@
#include <boost/json/object.hpp>
#include <boost/json/storage_ptr.hpp>
#include <boost/json/string.hpp>
#include <boost/json/detail/is_specialized.hpp>
#include <boost/json/detail/value.hpp>
#include <boost/json/detail/assert.hpp>
#include <boost/utility/string_view.hpp>
#include <boost/pilfer.hpp>
#include <cstdlib>