You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
71 lines
4.3 KiB
71 lines
4.3 KiB
// Boost.Bimap |
|
// |
|
// Copyright (c) 2006-2007 Matias Capeletto |
|
// |
|
// 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) |
|
|
|
/// \file detail/non_unique_views_helper.hpp |
|
/// \brief Details for non unique views |
|
|
|
#ifndef BOOST_BIMAP_DETAIL_NON_UNIQUE_VIEWS_HELPER_HPP |
|
#define BOOST_BIMAP_DETAIL_NON_UNIQUE_VIEWS_HELPER_HPP |
|
|
|
#if defined(_MSC_VER) && (_MSC_VER>=1200) |
|
#pragma once |
|
#endif |
|
|
|
#include <boost/config.hpp> |
|
|
|
/*===========================================================================*/ |
|
#define BOOST_BIMAP_NON_UNIQUE_VIEW_INSERT_FUNCTIONS \ |
|
\ |
|
template <class InputIterator> \ |
|
void insert(InputIterator iterBegin, InputIterator iterEnd) \ |
|
{ \ |
|
for( ; iterBegin != iterEnd ; ++iterBegin ) \ |
|
{ \ |
|
this->base().insert( \ |
|
this->template functor< \ |
|
BOOST_DEDUCED_TYPENAME base_::value_to_base>()( \ |
|
BOOST_DEDUCED_TYPENAME base_::value_type(*iterBegin)) ); \ |
|
} \ |
|
} \ |
|
\ |
|
std::pair<BOOST_DEDUCED_TYPENAME base_::iterator, bool> insert( \ |
|
BOOST_DEDUCED_TYPENAME ::boost::call_traits< \ |
|
BOOST_DEDUCED_TYPENAME base_::value_type >::param_type x) \ |
|
{ \ |
|
typedef BOOST_DEDUCED_TYPENAME base_::base_type::iterator base_iterator; \ |
|
\ |
|
std::pair< base_iterator, bool > r( \ |
|
this->base().insert( \ |
|
this->template functor< \ |
|
BOOST_DEDUCED_TYPENAME base_::value_to_base>()(x) ) \ |
|
); \ |
|
\ |
|
return std::pair<typename base_::iterator, bool>( \ |
|
this->template functor< \ |
|
BOOST_DEDUCED_TYPENAME base_::iterator_from_base>()(r.first), \ |
|
r.second \ |
|
); \ |
|
} \ |
|
\ |
|
BOOST_DEDUCED_TYPENAME base_::iterator insert( \ |
|
BOOST_DEDUCED_TYPENAME base_::iterator pos, \ |
|
BOOST_DEDUCED_TYPENAME ::boost::call_traits< \ |
|
BOOST_DEDUCED_TYPENAME base_::value_type >::param_type x) \ |
|
{ \ |
|
return this->template functor< \ |
|
BOOST_DEDUCED_TYPENAME base_::iterator_from_base>()( \ |
|
this->base().insert( \ |
|
this->template functor< \ |
|
BOOST_DEDUCED_TYPENAME base_::iterator_to_base>()(pos), \ |
|
this->template functor< \ |
|
BOOST_DEDUCED_TYPENAME base_::value_to_base>()(x)) \ |
|
); \ |
|
} |
|
/*===========================================================================*/ |
|
|
|
#endif // BOOST_BIMAP_DETAIL_NON_UNIQUE_VIEWS_HELPER_HPP
|
|
|