1 //----------------------------------------------------------------------------- 2 // boost detail/templated_streams.hpp header file 3 // See http://www.boost.org for updates, documentation, and revision history. 4 //----------------------------------------------------------------------------- 5 // 6 // Copyright (c) 2003 7 // Eric Friedman 8 // 9 // Distributed under the Boost Software License, Version 1.0. (See 10 // accompanying file LICENSE_1_0.txt or copy at 11 // http://www.boost.org/LICENSE_1_0.txt) 12 13 #ifndef BOOST_DETAIL_TEMPLATED_STREAMS_HPP 14 #define BOOST_DETAIL_TEMPLATED_STREAMS_HPP 15 16 #include "boost/config.hpp" 17 18 /////////////////////////////////////////////////////////////////////////////// 19 // (detail) BOOST_TEMPLATED_STREAM_* macros 20 // 21 // Provides workaround platforms without stream class templates. 22 // 23 24 #if !defined(BOOST_NO_STD_LOCALE) 25 26 #define BOOST_TEMPLATED_STREAM_TEMPLATE(E,T) \ 27 template < typename E , typename T > 28 29 #define BOOST_TEMPLATED_STREAM_TEMPLATE_ALLOC(E,T,A) \ 30 template < typename E , typename T , typename A > 31 32 #define BOOST_TEMPLATED_STREAM_ARGS(E,T) \ 33 typename E , typename T 34 35 #define BOOST_TEMPLATED_STREAM_ARGS_ALLOC(E,T,A) \ 36 typename E , typename T , typename A 37 38 #define BOOST_TEMPLATED_STREAM_COMMA , 39 40 #define BOOST_TEMPLATED_STREAM_ELEM(E) E 41 #define BOOST_TEMPLATED_STREAM_TRAITS(T) T 42 #define BOOST_TEMPLATED_STREAM_ALLOC(A) A 43 44 #define BOOST_TEMPLATED_STREAM(X,E,T) \ 45 BOOST_JOIN(std::basic_,X)< E , T > 46 47 #define BOOST_TEMPLATED_STREAM_WITH_ALLOC(X,E,T,A) \ 48 BOOST_JOIN(std::basic_,X)< E , T , A > 49 50 #else // defined(BOOST_NO_STD_LOCALE) 51 52 #define BOOST_TEMPLATED_STREAM_TEMPLATE(E,T) /**/ 53 54 #define BOOST_TEMPLATED_STREAM_TEMPLATE_ALLOC(E,T,A) /**/ 55 56 #define BOOST_TEMPLATED_STREAM_ARGS(E,T) /**/ 57 58 #define BOOST_TEMPLATED_STREAM_ARGS_ALLOC(E,T,A) /**/ 59 60 #define BOOST_TEMPLATED_STREAM_COMMA /**/ 61 62 #define BOOST_TEMPLATED_STREAM_ELEM(E) char 63 #define BOOST_TEMPLATED_STREAM_TRAITS(T) std::char_traits<char> 64 #define BOOST_TEMPLATED_STREAM_ALLOC(A) std::allocator<char> 65 66 #define BOOST_TEMPLATED_STREAM(X,E,T) \ 67 std::X 68 69 #define BOOST_TEMPLATED_STREAM_WITH_ALLOC(X,E,T,A) \ 70 std::X 71 72 #endif // BOOST_NO_STD_LOCALE 73 74 #endif // BOOST_DETAIL_TEMPLATED_STREAMS_HPP 75