Imported Upstream version 1.57.0
[platform/upstream/boost.git] / boost / typeof / std / iterator.hpp
1 // Copyright (C) 2005 Arkadiy Vertleyb, Peder Holt.
2 // Use, modification and distribution is subject to the Boost Software
3 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
4
5 #ifndef BOOST_TYPEOF_STD_iterator_hpp_INCLUDED
6 #define BOOST_TYPEOF_STD_iterator_hpp_INCLUDED
7
8 #include <iterator>
9 #include <boost/typeof/typeof.hpp>
10 #include <boost/typeof/std/string.hpp>
11
12 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
13
14 BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator_traits, 1)
15 #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
16 BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 2)
17 BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 3)
18 #else
19 BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 2)
20 BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 3)
21 BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 4)
22 BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 5)
23 #endif//BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
24 BOOST_TYPEOF_REGISTER_TYPE(std::input_iterator_tag)
25 BOOST_TYPEOF_REGISTER_TYPE(std::output_iterator_tag)
26 BOOST_TYPEOF_REGISTER_TYPE(std::forward_iterator_tag)
27 BOOST_TYPEOF_REGISTER_TYPE(std::bidirectional_iterator_tag)
28 BOOST_TYPEOF_REGISTER_TYPE(std::random_access_iterator_tag)
29 #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
30 BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 2)
31 BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 3)
32 BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 4)
33 BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 5)
34 #else
35 BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 1)
36 #endif//BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
37 BOOST_TYPEOF_REGISTER_TEMPLATE(std::back_insert_iterator, 1)
38 BOOST_TYPEOF_REGISTER_TEMPLATE(std::front_insert_iterator, 1)
39 BOOST_TYPEOF_REGISTER_TEMPLATE(std::insert_iterator, 1)
40 #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
41 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 1)
42 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 2)
43 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 3)
44 #else
45 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 1)
46 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 2)
47 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 3)
48 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 4)
49 #endif//BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
50 BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 1)
51 BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 2)
52 BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 3)
53 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istreambuf_iterator, 1)
54 BOOST_TYPEOF_REGISTER_TEMPLATE(std::istreambuf_iterator, 2)
55 BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostreambuf_iterator, 1)
56 BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostreambuf_iterator, 2)
57
58 #endif//BOOST_TYPEOF_STD_iterator_hpp_INCLUDED