// (C) Copyright Gennadiy Rozental 2011-2014. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org/libs/test for the library home page. // // File : $RCSfile$ // // Version : $Revision: 74248 $ // // Description : support for backward compatible collection comparison interface // *************************************************************************** #ifndef BOOST_TEST_TOOLS_DETAIL_IT_PAIR_HPP_112812GER #define BOOST_TEST_TOOLS_DETAIL_IT_PAIR_HPP_112812GER #ifdef BOOST_TEST_NO_OLD_TOOLS #include //____________________________________________________________________________// namespace boost { namespace test_tools { namespace tt_detail { // ************************************************************************** // // ************** backward compatibility support ************** // // ************************************************************************** // template struct it_pair { typedef It const_iterator; typedef typename std::iterator_traits::value_type value_type; it_pair( It const& b, It const& e ) : m_begin( b ), m_size( 0 ) { It tmp = b; while( tmp != e ) { ++m_size; ++tmp; } } It begin() const { return m_begin; } It end() const { return m_begin + m_size; } size_t size() const { return m_size; } private: It m_begin; size_t m_size; }; //____________________________________________________________________________// template it_pair make_it_pair( It const& b, It const& e ) { return it_pair( b, e ); } //____________________________________________________________________________// template it_pair make_it_pair( T const* b, T const* e ) { return it_pair( b, e ); } //____________________________________________________________________________// } // namespace tt_detail } // namespace test_tools } // namespace boost #include #endif // BOOST_TEST_NO_OLD_TOOLS #endif // BOOST_TEST_TOOLS_DETAIL_IT_PAIR_HPP_112812GER