Boost C++ Libraries Boost.Bimap Home Libraries People FAQ More

PrevUpHomeNext

iterator_facade_converters.hpp

Go to the documentation of this file.
00001 // Boost.Bimap
00002 //
00003 // Copyright (c) 2006-2007 Matias Capeletto
00004 //
00005 // Distributed under the Boost Software License, Version 1.0.
00006 // (See accompanying file LICENSE_1_0.txt or copy at
00007 // http://www.boost.org/LICENSE_1_0.txt)
00008 
00009 /// \file container_adaptor/support/iterator_facade_converters.hpp
00010 /// \brief Converter for Boost.Iterators based iterators.
00011 
00012 #ifndef BOOST_BIMAP_CONTAINER_ADAPTOR_DETAIL_ITERATOR_FACADE_CONVERTERS_HPP
00013 #define BOOST_BIMAP_CONTAINER_ADAPTOR_DETAIL_ITERATOR_FACADE_CONVERTERS_HPP
00014 
00015 #if defined(_MSC_VER) && (_MSC_VER>=1200)
00016 #pragma once
00017 #endif
00018 
00019 #include <boost/config.hpp>
00020 
00021 namespace boost {
00022 namespace bimaps {
00023 namespace container_adaptor {
00024 
00025 /// \brief Utilities to help in the construction of a container adaptor
00026 
00027 namespace support {
00028 
00029 /// \brief Converter for Boost.Iterators based iterators.
00030 /**
00031 Container adaptor is dessigned to play well with Boost.Iterators. This
00032 converter can be used if this library is used to adapt the iterators.
00033                                                                             **/
00034 template
00035 <
00036     class Iterator,
00037     class ConstIterator
00038 >
00039 struct iterator_facade_to_base
00040 {
00041     BOOST_DEDUCED_TYPENAME Iterator::base_type operator()(Iterator iter) const
00042     {
00043         return iter.base();
00044     }
00045 
00046     BOOST_DEDUCED_TYPENAME ConstIterator::base_type operator()(ConstIterator iter) const
00047     {
00048         return iter.base();
00049     }
00050 };
00051 
00052 #ifndef BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES
00053 
00054 template
00055 <
00056     class Iterator
00057 >
00058 struct iterator_facade_to_base<Iterator,Iterator>
00059 {
00060     BOOST_DEDUCED_TYPENAME Iterator::base_type operator()(Iterator iter) const
00061     {
00062         return iter.base();
00063     }
00064 };
00065 
00066 #endif // BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES
00067 
00068 #undef BOOST_BIMAP_CONTAINER_ADAPTOR_IMPLEMENT_CONVERT_FACADE_FUNCTION
00069 
00070 
00071 } // namespace support
00072 } // namespace container_adaptor
00073 } // namespace bimaps
00074 } // namespace boost
00075 
00076 
00077 #endif // BOOST_BIMAP_CONTAINER_ADAPTOR_DETAIL_ITERATOR_FACADE_CONVERTERS_HPP
Copyright 2006 Matias Capeletto

PrevUpHomeNext