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