|
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 |