// Copyright 2015 MongoDB Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #pragma once #include #if defined(BSONCXX_POLY_USE_MNMLSTC) #if defined(MONGO_CXX_DRIVER_COMPILING) || defined(BSONCXX_POLY_USE_SYSTEM_MNMLSTC) #include #else #include #endif namespace bsoncxx { BSONCXX_INLINE_NAMESPACE_BEGIN namespace stdx { using ::core::basic_string_view; using ::core::string_view; } // namespace stdx BSONCXX_INLINE_NAMESPACE_END } // namespace bsoncxx #elif defined(BSONCXX_POLY_USE_BOOST) #include #if BOOST_VERSION >= 106100 #include namespace bsoncxx { BSONCXX_INLINE_NAMESPACE_BEGIN namespace stdx { using ::boost::basic_string_view; using ::boost::string_view; } // namespace stdx BSONCXX_INLINE_NAMESPACE_END } // namespace bsoncxx #else #include namespace bsoncxx { BSONCXX_INLINE_NAMESPACE_BEGIN namespace stdx { template > using basic_string_view = ::boost::basic_string_ref; using string_view = ::boost::string_ref; } // namespace stdx BSONCXX_INLINE_NAMESPACE_END } // namespace bsoncxx #endif #elif defined(BSONCXX_POLY_USE_STD_EXPERIMENTAL) #include namespace bsoncxx { BSONCXX_INLINE_NAMESPACE_BEGIN namespace stdx { using ::std::experimental::basic_string_view; using ::std::experimental::string_view; } // namespace stdx BSONCXX_INLINE_NAMESPACE_END } // namespace bsoncxx #elif defined(BSONCXX_POLY_USE_STD) #include namespace bsoncxx { BSONCXX_INLINE_NAMESPACE_BEGIN namespace stdx { using ::std::basic_string_view; using ::std::string_view; } // namespace stdx BSONCXX_INLINE_NAMESPACE_END } // namespace bsoncxx #else #error "Cannot find a valid polyfill for string_view" #endif #include