Skip to main content

The DirIterator Class Reference

Declaration

class DirIterator { ... }

Included Headers

#include <src/dir.h>

Public Member Typedefs Index

usingvalue_type = DirEntry
usingdifference_type = std::ptrdiff_t
usingpointer = value_type *
usingreference = value_type &
usingiterator_category = std::input_iterator_tag

Friends Index

classDir
booloperator==
booloperator!=
DirIteratorbegin
DirIteratorend

Public Constructors Index

DirIterator (const DirIterator &it)
DirIterator (DirIterator &&it)

Private Constructors Index

DirIterator ()
DirIterator (const std::string &path)

Public Destructor Index

~DirIterator ()

Public Operators Index

DirIterator &operator= (const DirIterator &it)
DirIterator &operator= (DirIterator &&it)
DirIteratoroperator++ ()
const value_type &operator* () const
const value_type *operator-> () const

Private Member Attributes Index

std::unique_ptr< Private >p

Definition at line 43 of file dir.h.

Public Member Typedefs

difference_type

using DirIterator::difference_type = std::ptrdiff_t

Definition at line 47 of file dir.h.

47 using difference_type = std::ptrdiff_t;

iterator_category

using DirIterator::iterator_category = std::input_iterator_tag

Definition at line 50 of file dir.h.

50 using iterator_category = std::input_iterator_tag;

pointer

using DirIterator::pointer = value_type*

Definition at line 48 of file dir.h.

reference

using DirIterator::reference = value_type&

Definition at line 49 of file dir.h.

value_type

using DirIterator::value_type = DirEntry

Definition at line 46 of file dir.h.

Friends

begin

friend DirIterator DirIterator it
noexcept

Declaration at line 61 of file dir.h, definition at line 170 of file dir.cpp.

171{
172 return it;
173}

Reference DirIterator.

Dir

friend class Dir

Definition at line 66 of file dir.h.

66 friend class Dir;

Reference Dir.

Referenced by Dir.

end

friend DirIterator const DirIterator &
noexcept

Declaration at line 62 of file dir.h, definition at line 175 of file dir.cpp.

175DirIterator end(const DirIterator &) noexcept
176{
177 return DirIterator();
178}

Reference DirIterator.

operator!=

friend bool const DirIterator & it1, const DirIterator & it2

Declaration at line 60 of file dir.h, definition at line 165 of file dir.cpp.

165bool operator!=(const DirIterator &it1,const DirIterator &it2)
166{
167 return it1.p->it!=it2.p->it;
168}

References DirIterator and p.

operator==

friend bool const DirIterator & it1, const DirIterator & it2

Declaration at line 59 of file dir.h, definition at line 160 of file dir.cpp.

160bool operator==(const DirIterator &it1,const DirIterator &it2)
161{
162 return it1.p->it == it2.p->it;
163}

References DirIterator and p.

Public Constructors

DirIterator()

DirIterator::DirIterator (const DirIterator & it)

Declaration at line 51 of file dir.h, definition at line 104 of file dir.cpp.

104DirIterator::DirIterator(const DirIterator &it) : p(std::make_unique<Private>())
105{
106 p->it = it.p->it;
107 p->ec = it.p->ec;
108 p->current = it.p->current;
109}

References DirIterator and p.

Referenced by begin, DirIterator, DirIterator, end, operator!=, operator++, operator=, operator= and operator==.

DirIterator()

DirIterator::DirIterator (DirIterator && it)

Declaration at line 53 of file dir.h, definition at line 122 of file dir.cpp.

122DirIterator::DirIterator(DirIterator &&it) : p(std::make_unique<Private>())
123{
124 std::exchange(p->it,it.p->it);
125 std::exchange(p->ec,it.p->ec);
126 std::exchange(p->current,it.p->current);
127}

References DirIterator and p.

Private Constructors

DirIterator()

DirIterator::DirIterator ()

Declaration at line 67 of file dir.h, definition at line 96 of file dir.cpp.

96DirIterator::DirIterator() : p(std::make_unique<Private>())
97{
98}

Reference p.

DirIterator()

DirIterator::DirIterator (const std::string & path)

Declaration at line 68 of file dir.h, definition at line 100 of file dir.cpp.

100DirIterator::DirIterator(const std::string &path) : p(std::make_unique<Private>(path))
101{
102}

Reference p.

Public Destructor

~DirIterator()

DirIterator::~DirIterator ()

Declaration at line 63 of file dir.h, definition at line 137 of file dir.cpp.

Public Operators

operator->()

const DirIterator::value_type * DirIterator::operator-> ()

Declaration at line 57 of file dir.h, definition at line 154 of file dir.cpp.

155{
156 p->current.p->entry = *p->it;
157 return &p->current;
158}

Reference p.

operator*()

const DirIterator::value_type & DirIterator::operator* ()

Declaration at line 56 of file dir.h, definition at line 148 of file dir.cpp.

149{
150 p->current.p->entry = *p->it;
151 return p->current;
152}

Reference p.

operator++()

DirIterator DirIterator::operator++ ()

Declaration at line 55 of file dir.h, definition at line 141 of file dir.cpp.

142{
143 DirIterator result;
144 result.p->it = ++p->it;
145 return result;
146}

References DirIterator and p.

operator=()

DirIterator & DirIterator::operator= (const DirIterator & it)

Declaration at line 52 of file dir.h, definition at line 111 of file dir.cpp.

112{
113 if (&it!=this)
114 {
115 p->it = it.p->it;
116 p->ec = it.p->ec;
117 p->current = it.p->current;
118 }
119 return *this;
120}

References DirIterator and p.

operator=()

DirIterator & DirIterator::operator= (DirIterator && it)

Declaration at line 54 of file dir.h, definition at line 129 of file dir.cpp.

130{
131 std::exchange(p->it,it.p->it);
132 std::exchange(p->ec,it.p->ec);
133 std::exchange(p->current,it.p->current);
134 return *this;
135}

References DirIterator and p.

Private Member Attributes

p

std::unique_ptr<Private> DirIterator::p

Definition at line 70 of file dir.h.

70 std::unique_ptr<Private> p;

Referenced by DirIterator, DirIterator, DirIterator, DirIterator, operator!=, operator*, operator++, operator->, operator=, operator= and operator==.


The documentation for this class was generated from the following files:


Generated via doxygen2docusaurus by Doxygen 1.14.0.