1 // Copyright Neil Groves 2010. Use, modification and 2 // distribution is subject to the Boost Software License, Version 3 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 // 6 // 7 // For more information, see http://www.boost.org/libs/range/ 8 // 9 #ifndef BOOST_RANGE_COMBINE_HPP 10 #define BOOST_RANGE_COMBINE_HPP 11 12 #include <boost/config.hpp> 13 #include <boost/range/iterator_range_core.hpp> 14 #include <boost/iterator/zip_iterator.hpp> 15 16 namespace boost 17 { 18 namespace range 19 { 20 21 template<typename IterTuple> 22 class combined_range 23 : public iterator_range<zip_iterator<IterTuple> > 24 { 25 typedef iterator_range<zip_iterator<IterTuple> > base; 26 public: combined_range(IterTuple first,IterTuple last)27 combined_range(IterTuple first, IterTuple last) 28 : base(first, last) 29 { 30 } 31 }; 32 33 } // namespace range 34 } // namespace boost 35 36 #if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) || \ 37 defined(BOOST_NO_CXX11_DECLTYPE) || \ 38 defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || \ 39 defined(BOOST_NO_CXX11_RVALUE_REFERENCES) 40 # include <boost/range/detail/combine_cxx03.hpp> 41 #else 42 # include <boost/range/detail/combine_cxx11.hpp> 43 #endif 44 45 #endif 46