is_iterator_range.hpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
  2. // (C) Copyright 2003-2007 Jonathan Turkanis
  3. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
  5. // See http://www.boost.org/libs/iostreams for documentation.
  6. #ifndef BOOST_IOSTREAMS_DETAIL_IS_ITERATOR_RANGE_HPP_INCLUDED
  7. #define BOOST_IOSTREAMS_DETAIL_IS_ITERATOR_RANGE_HPP_INCLUDED
  8. #include <boost/config.hpp>
  9. #include <boost/detail/workaround.hpp>
  10. #include <boost/iostreams/detail/bool_trait_def.hpp>
  11. // Must come last.
  12. #include <boost/iostreams/detail/config/disable_warnings.hpp>
  13. namespace boost {
  14. # if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //---------------------------------//
  15. // We avoid dependence on Boost.Range by using a forward declaration.
  16. template<typename Iterator>
  17. class iterator_range;
  18. namespace iostreams {
  19. BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_iterator_range, boost::iterator_range, 1)
  20. } // End namespace iostreams.
  21. # else // # if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) //-----------------------//
  22. namespace iostreams {
  23. template<typename T>
  24. struct is_iterator_range {
  25. BOOST_STATIC_CONSTANT(bool, value = false);
  26. };
  27. } // End namespace iostreams.
  28. # endif // # if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) //----------------------//
  29. } // End namespace boost.
  30. #include <boost/iostreams/detail/config/enable_warnings.hpp>
  31. #endif // #ifndef BOOST_IOSTREAMS_DETAIL_IS_ITERATOR_RANGE_HPP_INCLUDED