00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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