member_iterator-fwd.hh

00001 /* vim: set sw=4 sts=4 et foldmethod=syntax : */
00002 
00003 /*
00004  * Copyright (c) 2007, 2008 Ciaran McCreesh
00005  * Copyright (c) 2007 David Leverton
00006  *
00007  * This file is part of the Paludis package manager. Paludis is free software;
00008  * you can redistribute it and/or modify it under the terms of the GNU General
00009  * Public License version 2, as published by the Free Software Foundation.
00010  *
00011  * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
00012  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00013  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
00014  * details.
00015  *
00016  * You should have received a copy of the GNU General Public License along with
00017  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00018  * Place, Suite 330, Boston, MA  02111-1307  USA
00019  */
00020 
00021 #ifndef PALUDIS_GUARD_PALUDIS_UTIL_MEMBER_ITERATOR_FWD_HH
00022 #define PALUDIS_GUARD_PALUDIS_UTIL_MEMBER_ITERATOR_FWD_HH 1
00023 
00024 #include <iterator>
00025 #include <tr1/type_traits>
00026 
00027 namespace paludis
00028 {
00029     template <typename Value_, typename Iterator_,
00030              Value_ std::tr1::remove_reference<typename std::iterator_traits<Iterator_>::value_type>::type::* member_>
00031     class MemberIterator;
00032 
00033     template <typename Iterator_>
00034     struct FirstIteratorTypes;
00035 
00036     template <typename Iterator_>
00037     typename FirstIteratorTypes<Iterator_>::Type
00038     first_iterator(Iterator_);
00039 
00040     template <typename Iterator_>
00041     struct SecondIteratorTypes;
00042 
00043     template <typename Iterator_>
00044     typename SecondIteratorTypes<Iterator_>::Type
00045     second_iterator(Iterator_);
00046 }
00047 
00048 #endif

Generated on Mon Sep 21 10:36:08 2009 for paludis by  doxygen 1.5.4