]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/cacheiterators.h
* apt-pkg/cacheiterator.h:
[apt.git] / apt-pkg / cacheiterators.h
index a64326a44b82e6bc6e194826f60be69e97f3324b..3d58f7ec0218ac9ace3082ed2e220fa78a57b3ba 100644 (file)
                                                                        /*}}}*/
 #ifndef PKGLIB_CACHEITERATORS_H
 #define PKGLIB_CACHEITERATORS_H
+#include<iterator>
 // abstract Iterator template                                          /*{{{*/
 /* This template provides the very basic iterator methods we
    need to have for doing some walk-over-the-cache magic */
-template<typename Str, typename Itr> class pkgCache::Iterator {
+template<typename Str, typename Itr> class pkgCache::Iterator :
+                       public std::iterator<std::forward_iterator_tag, Str> {
        protected:
        Str *S;
        pkgCache *Owner;
@@ -62,6 +64,7 @@ template<typename Str, typename Itr> class pkgCache::Iterator {
        inline Str const *operator ->() const {return S;};
        inline operator Str *() {return S == OwnerPointer() ? 0 : S;};
        inline operator Str const *() const {return S == OwnerPointer() ? 0 : S;};
+       inline Str &operator *() {return *S;};
        inline Str const &operator *() const {return *S;};
        inline pkgCache *Cache() {return Owner;};
 
@@ -345,7 +348,8 @@ class pkgCache::PkgFileIterator : public Iterator<PackageFile, PkgFileIterator>
 
        // Constructors
        inline PkgFileIterator() : Iterator<PackageFile, PkgFileIterator>() {};
-       inline PkgFileIterator(pkgCache &Owner,PackageFile *Trg = 0) : Iterator<PackageFile, PkgFileIterator>(Owner, Trg) {};
+       inline PkgFileIterator(pkgCache &Owner) : Iterator<PackageFile, PkgFileIterator>(Owner, Owner.PkgFileP) {};
+       inline PkgFileIterator(pkgCache &Owner,PackageFile *Trg) : Iterator<PackageFile, PkgFileIterator>(Owner, Trg) {};
 };
                                                                        /*}}}*/
 // Version File                                                                /*{{{*/