Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:38:48

0001 // (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
0002 // (C) Copyright 2003-2007 Jonathan Turkanis
0003 // Distributed under the Boost Software License, Version 1.0. (See accompanying
0004 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
0005 
0006 // See http://www.boost.org/libs/iostreams for documentation.
0007 
0008 #ifndef BOOST_IOSTREAMS_DETAIL_CONFIG_CODECVT_HPP_INCLUDED
0009 #define BOOST_IOSTREAMS_DETAIL_CONFIG_CODECVT_HPP_INCLUDED
0010 
0011 #include <boost/config.hpp>
0012 #include <boost/detail/workaround.hpp>
0013 #include <boost/iostreams/detail/config/wide_streams.hpp>
0014 #include <cstddef>
0015 
0016 #if defined(_MSC_VER)
0017 # pragma once
0018 #endif       
0019 
0020 //------------------Support for codecvt with user-defined state types---------//
0021 
0022 #if defined(__MSL_CPP__) || defined(__LIBCOMO__) || \
0023     BOOST_WORKAROUND(_STLPORT_VERSION, <= 0x450) || \
0024     defined(_LIBCPP_VERSION) \
0025     /**/
0026 # define BOOST_IOSTREAMS_NO_PRIMARY_CODECVT_DEFINITION
0027 #endif
0028 
0029 #if defined(__GLIBCPP__) || defined(__GLIBCXX__) || \
0030     BOOST_WORKAROUND(_STLPORT_VERSION, > 0x450) \
0031     /**/
0032 # define BOOST_IOSTREAMS_EMPTY_PRIMARY_CODECVT_DEFINITION
0033 #endif
0034 
0035 //------------------Check for codecvt ctor taking a reference count-----------//
0036 
0037 #if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3205)) || \
0038     BOOST_WORKAROUND(_STLPORT_VERSION, < 0x461) \
0039     /**/
0040 # define BOOST_IOSTREAMS_NO_CODECVT_CTOR_FROM_SIZE_T
0041 #endif
0042 
0043 //------------------Normalize codecvt::length---------------------------------//
0044 
0045 #if !defined(__MSL_CPP__) && !defined(__LIBCOMO__) && !defined(__clang__) && \
0046     (!defined(BOOST_RWSTD_VER) || BOOST_RWSTD_VER < 0x04010300) && \
0047     (!defined(__MACH__) || !defined(__INTEL_COMPILER))
0048     /**/
0049 # define BOOST_IOSTREAMS_CODECVT_CV_QUALIFIER const
0050 #else
0051 # define BOOST_IOSTREAMS_CODECVT_CV_QUALIFIER
0052 #endif
0053 
0054 //------------------Check for codecvt::max_length-----------------------------//
0055 
0056 #if BOOST_WORKAROUND(_STLPORT_VERSION, < 0x461)
0057 # define BOOST_IOSTREAMS_NO_CODECVT_MAX_LENGTH
0058 #endif
0059                     
0060 //------------------Put mbstate_t and codecvt in std--------------------------//
0061 
0062 #ifndef BOOST_IOSTREAMS_NO_LOCALE
0063 # include <locale>
0064 #endif
0065 
0066 // From Robert Ramey's version of utf8_codecvt_facet.
0067 namespace std { 
0068 
0069 #if defined(__LIBCOMO__)
0070     using ::mbstate_t;
0071 #elif defined(BOOST_DINKUMWARE_STDLIB) && !defined(BOOST_BORLANDC)
0072     using ::mbstate_t;
0073 #elif defined(__SGI_STL_PORT)
0074 #elif defined(BOOST_NO_STDC_NAMESPACE)
0075     using ::codecvt;
0076     using ::mbstate_t;
0077 #endif
0078 
0079 } // End namespace std.
0080 
0081 #endif // #ifndef BOOST_IOSTREAMS_DETAIL_CONFIG_CODECVT_HPP_INCLUDED