• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //  (C) Copyright Gennadiy Rozental 2001.
2 //  Distributed under the Boost Software License, Version 1.0.
3 //  (See accompanying file LICENSE_1_0.txt or copy at
4 //  http://www.boost.org/LICENSE_1_0.txt)
5 
6 //  See http://www.boost.org/libs/test for the library home page.
7 //
8 //  File        : $RCSfile$
9 //
10 //  Version     : $Revision: 74248 $
11 //
12 //  Description : support for backward compatible collection comparison interface
13 // ***************************************************************************
14 
15 #ifndef BOOST_TEST_TOOLS_DETAIL_IT_PAIR_HPP_112812GER
16 #define BOOST_TEST_TOOLS_DETAIL_IT_PAIR_HPP_112812GER
17 
18 #ifdef BOOST_TEST_NO_OLD_TOOLS
19 
20 #include <boost/test/detail/suppress_warnings.hpp>
21 
22 //____________________________________________________________________________//
23 
24 namespace boost {
25 namespace test_tools {
26 namespace tt_detail {
27 
28 // ************************************************************************** //
29 // **************       backward compatibility support         ************** //
30 // ************************************************************************** //
31 
32 template<typename It>
33 struct it_pair {
34     typedef It const_iterator;
35     typedef typename std::iterator_traits<It>::value_type value_type;
36 
it_pairboost::test_tools::tt_detail::it_pair37     it_pair( It const& b, It const& e ) : m_begin( b ), m_size( 0 )
38     {
39         It tmp = b;
40         while( tmp != e ) { ++m_size; ++tmp; }
41     }
42 
beginboost::test_tools::tt_detail::it_pair43     It      begin() const   { return m_begin; }
endboost::test_tools::tt_detail::it_pair44     It      end() const     { return m_begin + m_size; }
sizeboost::test_tools::tt_detail::it_pair45     size_t  size() const    { return m_size; }
46 
47 private:
48     It      m_begin;
49     size_t  m_size;
50 };
51 
52 //____________________________________________________________________________//
53 
54 template<typename It>
55 it_pair<It>
make_it_pair(It const & b,It const & e)56 make_it_pair( It const& b, It const& e ) { return it_pair<It>( b, e ); }
57 
58 //____________________________________________________________________________//
59 
60 template<typename T>
61 it_pair<T const*>
make_it_pair(T const * b,T const * e)62 make_it_pair( T const* b, T const* e ) { return it_pair<T const*>( b, e ); }
63 
64 //____________________________________________________________________________//
65 
66 } // namespace tt_detail
67 } // namespace test_tools
68 } // namespace boost
69 
70 #include <boost/test/detail/enable_warnings.hpp>
71 
72 #endif // BOOST_TEST_NO_OLD_TOOLS
73 
74 #endif // BOOST_TEST_TOOLS_DETAIL_IT_PAIR_HPP_112812GER
75