17 #include <bsoncxx/config/prelude.hpp>
19 #if defined(BSONCXX_POLY_USE_MNMLSTC)
21 #include <core/string.hpp>
24 inline namespace v_noabi {
27 using ::core::basic_string_view;
28 using ::core::string_view;
34 #elif defined(BSONCXX_POLY_USE_BOOST)
36 #include <boost/version.hpp>
38 #if BOOST_VERSION >= 106100
40 #include <boost/utility/string_view.hpp>
43 inline namespace v_noabi {
46 using ::boost::basic_string_view;
47 using ::boost::string_view;
55 #include <boost/utility/string_ref.hpp>
58 inline namespace v_noabi {
61 template <
typename charT,
typename traits = std::
char_traits<
charT>>
62 using basic_string_view = ::boost::basic_string_ref<charT, traits>;
63 using string_view = ::boost::string_ref;
71 #elif defined(BSONCXX_POLY_USE_STD_EXPERIMENTAL)
73 #include <experimental/string_view>
76 inline namespace v_noabi {
79 using ::std::experimental::basic_string_view;
80 using ::std::experimental::string_view;
86 #elif defined(BSONCXX_POLY_USE_STD)
88 #include <string_view>
91 inline namespace v_noabi {
94 using ::std::basic_string_view;
95 using ::std::string_view;
102 #error "Cannot find a valid polyfill for string_view"
105 #include <bsoncxx/config/postlude.hpp>
The top-level namespace for bsoncxx library entities.
Definition: element.hpp:24