@@ -82,7 +82,7 @@ class dft_range {
8282 In in_; // NOLINT(cppcoreguidelines-avoid-const-or-ref-data-members)
8383 Direction dir_;
8484
85- struct const_iterator : private std ::decay_t <In>::const_iterator {
85+ struct const_iterator : private std ::decay_t <In>::const_iterator { // NOLINT(cppcoreguidelines-pro-type-member-init,hicpp-member-init)
8686 // static constexpr auto dimensionality = In::const_iterator::dimensionality;
8787
8888 private:
@@ -91,6 +91,7 @@ class dft_range {
9191 Direction dir_;
9292
9393 public:
94+ const_iterator () = default ;
9495 const_iterator (
9596 typename std::decay_t <In>::const_iterator it,
9697 bool doo, std::array<bool , std::decay_t <In>::dimensionality - 1 > sub_which,
@@ -108,20 +109,33 @@ class dft_range {
108109 return static_cast <typename std::decay_t <In>::const_iterator const &>(lhs) - static_cast <typename std::decay_t <In>::const_iterator const &>(rhs);
109110 }
110111
111- auto operator *() const {
112- class fake_array {
113- multi::extensions_t <dimensionality - 1 > extensions_;
114-
115- public:
116- explicit fake_array (multi::extensions_t <dimensionality - 1 > ext) : extensions_{ext} {}
117- auto extensions () const { return extensions_; }
118- // multi::size_t size_;
119- auto extension () const {
120- using std::get;
121- return get<0 >(extensions ());
122- }
123- auto size () const { return extension ().size (); }
124- } fa{(*static_cast <typename std::decay_t <In>::const_iterator const &>(*this )).extensions ()};
112+ auto operator ++() -> const_iterator&;
113+ auto operator --() -> const_iterator&;
114+
115+ auto operator ++(int ) -> const_iterator;
116+ auto operator --(int ) -> const_iterator;
117+
118+ auto operator ==(const_iterator const & other) const -> bool ;
119+ auto operator !=(const_iterator const & other) const -> bool ;
120+
121+ // auto operator*() const -> reference;
122+
123+ class fake_array {
124+ multi::extensions_t <dimensionality - 1 > extensions_;
125+
126+ public:
127+ explicit fake_array (multi::extensions_t <dimensionality - 1 > ext) : extensions_{ext} {}
128+ auto extensions () const { return extensions_; }
129+ // multi::size_t size_;
130+ auto extension () const {
131+ using std::get;
132+ return get<0 >(extensions ());
133+ }
134+ auto size () const { return extension ().size (); }
135+ };
136+
137+ auto operator *() const -> fake_array {
138+ fake_array fa{(*static_cast <typename std::decay_t <In>::const_iterator const &>(*this )).extensions ()};
125139 return fa;
126140 }
127141
0 commit comments