1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // 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)
- #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
|