iterator.hpp 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. #ifndef BOOST_TYPEOF_STD_iterator_hpp_INCLUDED
  5. #define BOOST_TYPEOF_STD_iterator_hpp_INCLUDED
  6. #include <iterator>
  7. #include <boost/typeof/typeof.hpp>
  8. #include <boost/typeof/std/string.hpp>
  9. #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
  10. BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator_traits, 1)
  11. #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
  12. BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 2)
  13. BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 3)
  14. #else
  15. BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 2)
  16. BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 3)
  17. BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 4)
  18. BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 5)
  19. #endif//BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
  20. BOOST_TYPEOF_REGISTER_TYPE(std::input_iterator_tag)
  21. BOOST_TYPEOF_REGISTER_TYPE(std::output_iterator_tag)
  22. BOOST_TYPEOF_REGISTER_TYPE(std::forward_iterator_tag)
  23. BOOST_TYPEOF_REGISTER_TYPE(std::bidirectional_iterator_tag)
  24. BOOST_TYPEOF_REGISTER_TYPE(std::random_access_iterator_tag)
  25. #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
  26. BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 2)
  27. BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 3)
  28. BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 4)
  29. BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 5)
  30. #else
  31. BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 1)
  32. #endif//BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
  33. BOOST_TYPEOF_REGISTER_TEMPLATE(std::back_insert_iterator, 1)
  34. BOOST_TYPEOF_REGISTER_TEMPLATE(std::front_insert_iterator, 1)
  35. BOOST_TYPEOF_REGISTER_TEMPLATE(std::insert_iterator, 1)
  36. #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
  37. BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 1)
  38. BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 2)
  39. BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 3)
  40. #else
  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. BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 4)
  45. #endif//BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
  46. BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 1)
  47. BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 2)
  48. BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 3)
  49. BOOST_TYPEOF_REGISTER_TEMPLATE(std::istreambuf_iterator, 1)
  50. BOOST_TYPEOF_REGISTER_TEMPLATE(std::istreambuf_iterator, 2)
  51. BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostreambuf_iterator, 1)
  52. BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostreambuf_iterator, 2)
  53. #endif//BOOST_TYPEOF_STD_iterator_hpp_INCLUDED