// 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) #pragma once #endif #include /*****************************************************************************/ #define BOOST_BIMAP_NON_UNIQUE_CONTAINER_ADAPTOR_INSERT_FUNCTIONS \ \ template \ 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