| // 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 container_adaptor/detail/non_unique_container_helper.hpp |
| /// \brief Details for non unique containers |
| |
| #ifndef BOOST_BIMAP_CONTAINER_ADAPTOR_DETAIL_NON_UNIQUE_CONTAINER_HELPER_HPP |
| #define BOOST_BIMAP_CONTAINER_ADAPTOR_DETAIL_NON_UNIQUE_CONTAINER_HELPER_HPP |
| |
| #if defined(_MSC_VER) && (_MSC_VER>=1200) |
| #pragma once |
| #endif |
| |
| #include <boost/config.hpp> |
| |
| /*****************************************************************************/ |
| #define BOOST_BIMAP_NON_UNIQUE_CONTAINER_ADAPTOR_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)) ); \ |
| } \ |
| } \ |
| \ |
| BOOST_DEDUCED_TYPENAME base_::iterator insert( \ |
| BOOST_DEDUCED_TYPENAME ::boost::call_traits< \ |
| BOOST_DEDUCED_TYPENAME base_::value_type >::param_type x) \ |
| { \ |
| return this->base().insert( this->template functor< \ |
| BOOST_DEDUCED_TYPENAME base_:: \ |
| value_to_base>()(x) ); \ |
| } \ |
| \ |
| 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_CONTAINER_ADAPTOR_DETAIL_NON_UNIQUE_CONTAINER_HELPER_HPP |
| |
| |