[857] | 1 | // -*- C++ -*-
|
---|
| 2 | // ----------------------------------------------------------------------------
|
---|
| 3 | // config_macros.hpp : configuration macros for the format library
|
---|
| 4 | // only BOOST_IO_STD is absolutely needed (it should be 'std::' in general)
|
---|
| 5 | // others are compiler-specific workaround macros used in #ifdef switches
|
---|
| 6 | // ----------------------------------------------------------------------------
|
---|
| 7 |
|
---|
| 8 | // Copyright Samuel Krempp 2003. Use, modification, and distribution are
|
---|
| 9 | // subject to the Boost Software License, Version 1.0. (See accompanying
|
---|
| 10 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
---|
| 11 |
|
---|
| 12 | // see http://www.boost.org/libs/format for library home page
|
---|
| 13 |
|
---|
| 14 |
|
---|
| 15 | // ----------------------------------------------------------------------------
|
---|
| 16 |
|
---|
| 17 | #ifndef BOOST_FORMAT_CONFIG_MACROS_HPP
|
---|
| 18 | #define BOOST_FORMAT_CONFIG_MACROS_HPP
|
---|
| 19 |
|
---|
| 20 | #include <boost/config.hpp>
|
---|
| 21 | #include <boost/detail/workaround.hpp>
|
---|
| 22 |
|
---|
| 23 | // make sure our local macros wont override something :
|
---|
| 24 | #if defined(BOOST_NO_LOCALE_ISDIGIT) || defined(BOOST_OVERLOAD_FOR_NON_CONST) \
|
---|
| 25 | || defined(BOOST_IO_STD) || defined( BOOST_IO_NEEDS_USING_DECLARATION ) \
|
---|
| 26 | || defined(BOOST_NO_TEMPLATE_STD_STREAM) \
|
---|
| 27 | || defined(BOOST_FORMAT_STREAMBUF_DEFINED) || defined(BOOST_FORMAT_OSTREAM_DEFINED)
|
---|
| 28 | #error "boost::format uses a local macro that is already defined."
|
---|
| 29 | #endif
|
---|
| 30 |
|
---|
| 31 | // specific workarounds. each header can define BOOS_IO_STD if it
|
---|
| 32 | // needs. (e.g. because of IO_NEEDS_USING_DECLARATION)
|
---|
| 33 | #include <boost/format/detail/workarounds_gcc-2_95.hpp>
|
---|
| 34 | #include <boost/format/detail/workarounds_stlport.hpp>
|
---|
| 35 |
|
---|
| 36 | #ifndef BOOST_IO_STD
|
---|
| 37 | # define BOOST_IO_STD ::std::
|
---|
| 38 | #endif
|
---|
| 39 |
|
---|
| 40 | #if defined(BOOST_NO_STD_LOCALE) || \
|
---|
| 41 | ( BOOST_WORKAROUND(__BORLANDC__, <= 0x564) \
|
---|
| 42 | || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT( 0x570 ) ) )
|
---|
| 43 | // some future __BORLANDC__ >0x564 versions might not need this
|
---|
| 44 | // 0x570 is Borland's kylix branch
|
---|
| 45 | #define BOOST_NO_LOCALE_ISDIGIT
|
---|
| 46 | #endif
|
---|
| 47 |
|
---|
| 48 | #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) ) || BOOST_WORKAROUND( BOOST_MSVC, BOOST_TESTED_AT(1300))
|
---|
| 49 | #define BOOST_NO_OVERLOAD_FOR_NON_CONST
|
---|
| 50 | #endif
|
---|
| 51 |
|
---|
| 52 | // gcc-2.95's native stringstream is not usable
|
---|
| 53 | #if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
---|
| 54 | #define BOOST_FORMAT_IGNORE_STRINGSTREAM
|
---|
| 55 | #endif
|
---|
| 56 |
|
---|
| 57 |
|
---|
| 58 | // **** Workaround for io streams, stlport and msvc.
|
---|
| 59 | #ifdef BOOST_IO_NEEDS_USING_DECLARATION
|
---|
| 60 | namespace boost {
|
---|
| 61 | using std::char_traits;
|
---|
| 62 | using std::basic_ostream;
|
---|
| 63 | namespace io {
|
---|
| 64 | using std::basic_ostream;
|
---|
| 65 | namespace detail {
|
---|
| 66 | using std::basic_ios;
|
---|
| 67 | using std::basic_ostream;
|
---|
| 68 | }
|
---|
| 69 | }
|
---|
| 70 | #if ! defined(BOOST_NO_STD_LOCALE)
|
---|
| 71 | using std::locale;
|
---|
| 72 | namespace io {
|
---|
| 73 | using std::locale;
|
---|
| 74 | namespace detail {
|
---|
| 75 | using std::locale;
|
---|
| 76 | }
|
---|
| 77 | }
|
---|
| 78 | #endif // locale
|
---|
| 79 | }
|
---|
| 80 | // -end N.S. boost
|
---|
| 81 | #endif // needs_using_declaration
|
---|
| 82 |
|
---|
| 83 |
|
---|
| 84 | // *** hide std::locale if it doesnt exist.
|
---|
| 85 | // this typedef is either std::locale or int, avoids placing ifdefs everywhere
|
---|
| 86 | namespace boost { namespace io { namespace detail {
|
---|
| 87 | #if ! defined(BOOST_NO_STD_LOCALE)
|
---|
| 88 | typedef BOOST_IO_STD locale locale_t;
|
---|
| 89 | #else
|
---|
| 90 | typedef int locale_t;
|
---|
| 91 | #endif
|
---|
| 92 | } } }
|
---|
| 93 |
|
---|
| 94 |
|
---|
| 95 | // ----------------------------------------------------------------------------
|
---|
| 96 |
|
---|
| 97 | #endif // BOOST_FORMAT_MACROS_DEFAULT_HPP
|
---|