diff options
Diffstat (limited to '3rdParty/Boost/src/boost/mpl/map/aux_/insert_impl.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/mpl/map/aux_/insert_impl.hpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/mpl/map/aux_/insert_impl.hpp b/3rdParty/Boost/src/boost/mpl/map/aux_/insert_impl.hpp new file mode 100644 index 0000000..ab0aad3 --- /dev/null +++ b/3rdParty/Boost/src/boost/mpl/map/aux_/insert_impl.hpp @@ -0,0 +1,72 @@ + +#ifndef BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED +#define BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2003-2004 +// Copyright David Abrahams 2003-2004 +// +// 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/mpl for documentation. + +// $Id: insert_impl.hpp 55751 2009-08-24 04:11:00Z agurtovoy $ +// $Date: 2009-08-23 21:11:00 -0700 (Sun, 23 Aug 2009) $ +// $Revision: 55751 $ + +#include <boost/mpl/insert_fwd.hpp> +#include <boost/mpl/next_prior.hpp> +#include <boost/mpl/map/aux_/contains_impl.hpp> +#include <boost/mpl/map/aux_/item.hpp> +#include <boost/mpl/map/aux_/tag.hpp> +#include <boost/mpl/aux_/na.hpp> +#include <boost/mpl/aux_/config/typeof.hpp> + +namespace boost { namespace mpl { + +namespace aux { +template< typename Map, typename Pair > +struct map_insert_impl + : if_< + contains_impl<aux::map_tag>::apply<Map,Pair> + , Map +#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) + , m_item< + typename Pair::first + , typename Pair::second + , Map + > +#else + , m_item< + Map::order::value + , typename Pair::first + , typename Pair::second + , Map + > +#endif + > +{ +}; +} + +template<> +struct insert_impl< aux::map_tag > +{ + template< + typename Map + , typename PosOrKey + , typename KeyOrNA + > + struct apply + : aux::map_insert_impl< + Map + , typename if_na<KeyOrNA,PosOrKey>::type + > + { + }; +}; + +}} + +#endif // BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED |