| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | ////  Copyright (c) 2012 Artyom Beilis (Tonkikh)//  Copyright (c) 2019 Alexander Grund////  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)//#ifndef BOOST_NOWIDE_CONFIG_HPP_INCLUDED#define BOOST_NOWIDE_CONFIG_HPP_INCLUDED/// @file#include <boost/config.hpp>#include <boost/nowide/replacement.hpp>#include <boost/version.hpp>//! @cond Doxygen_Suppress#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK)#ifdef BOOST_NOWIDE_SOURCE#define BOOST_NOWIDE_DECL BOOST_SYMBOL_EXPORT#else#define BOOST_NOWIDE_DECL BOOST_SYMBOL_IMPORT#endif // BOOST_NOWIDE_SOURCE#else#define BOOST_NOWIDE_DECL#endif // BOOST_NOWIDE_DYN_LINK//// Automatically link to the correct build variant where possible.//#if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_NOWIDE_NO_LIB) && !defined(BOOST_NOWIDE_SOURCE)//// Set the name of our library, this will get undef'ed by auto_link.hpp// once it's done with it://#define BOOST_LIB_NAME boost_nowide//// If we're importing code from a dll, then tell auto_link.hpp about it://#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK)#define BOOST_DYN_LINK#endif//// And include the header that does the work://#include <boost/config/auto_link.hpp>#endif // auto-linking disabled//! @endcond/// @def BOOST_NOWIDE_USE_WCHAR_OVERLOADS/// @brief Whether to use the wchar_t* overloads in fstream/filebuf/// Enabled on Windows and Cygwin as the latter may use wchar_t in filesystem::path#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)#define BOOST_NOWIDE_USE_WCHAR_OVERLOADS 1#else#define BOOST_NOWIDE_USE_WCHAR_OVERLOADS 0#endif/// @def BOOST_NOWIDE_USE_FILEBUF_REPLACEMENT/// @brief Define to 1 to use internal class from filebuf.hpp////// - On Non-Windows platforms: Define to 1 to use the same class from header <filebuf.hpp>///   that is used on Windows./// - On Windows: No effect, always overwritten to 1////// Affects boost::nowide::basic_filebuf,/// boost::nowide::basic_ofstream, boost::nowide::basic_ifstream, boost::nowide::basic_fstream#if defined(BOOST_WINDOWS) || BOOST_NOWIDE_USE_WCHAR_OVERLOADS#ifdef BOOST_NOWIDE_USE_FILEBUF_REPLACEMENT#undef BOOST_NOWIDE_USE_FILEBUF_REPLACEMENT#endif#define BOOST_NOWIDE_USE_FILEBUF_REPLACEMENT 1#elif !defined(BOOST_NOWIDE_USE_FILEBUF_REPLACEMENT)#define BOOST_NOWIDE_USE_FILEBUF_REPLACEMENT 0#endif//! @cond Doxygen_Suppress#if BOOST_VERSION < 106500 && defined(BOOST_GCC) && __GNUC__ >= 7#define BOOST_NOWIDE_FALLTHROUGH __attribute__((fallthrough))#else#define BOOST_NOWIDE_FALLTHROUGH BOOST_FALLTHROUGH#endif// MSVC 2015 (1900) has reasonable C++11 support (especially auto-generated move ctors)// libstdc++ < 5 does not support movable streams#if(__cplusplus >= 201103L || (defined(BOOST_MSVC) && BOOST_MSVC >= 1900)) \  && (!defined(BOOST_LIBSTDCXX_VERSION) || BOOST_LIBSTDCXX_VERSION >= 50000)#define BOOST_NOWIDE_CXX11 1#else#define BOOST_NOWIDE_CXX11 0#endif//! @endcondnamespace boost {////// \brief This namespace includes implementations of the standard library functions and/// classes such that they accept UTF-8 strings on Windows./// On other platforms (i.e. not on Windows) those functions and classes are just aliases/// of the corresponding ones from the std namespace or behave like them.///namespace nowide {}} // namespace boost#endif // boost/nowide/config.hpp
 |