1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #ifndef BOOST_JSON_STRING_VIEW_HPP
- #define BOOST_JSON_STRING_VIEW_HPP
- #include <boost/json/detail/config.hpp>
- #ifndef BOOST_JSON_STANDALONE
- # include <boost/utility/string_view.hpp>
- #else
- # if __has_include(<string_view>)
- # include <string_view>
- # if __cpp_lib_string_view < 201603L
- # error Support for std::string_view is required to use Boost.JSON standalone
- # endif
- # else
- # error Header <string_view> is required to use Boost.JSON standalone
- # endif
- #endif
- #include <type_traits>
- BOOST_JSON_NS_BEGIN
- #ifdef BOOST_JSON_DOCS
- using string_view = __see_below__;
- #elif ! defined(BOOST_JSON_STANDALONE)
- using string_view = boost::string_view;
- #else
- using string_view = std::string_view;
- #endif
- namespace detail {
- 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;
- }
- BOOST_JSON_NS_END
- #endif
|