Skip to content
Snippets Groups Projects

[draft] Allow equality comparison of TransformedRangeIterator classes with same base iterator

Closed Carsten Gräser requested to merge feature/generalize-transformedrangeit-comp into master
1 unresolved thread
2 files
+ 30
2
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -8,6 +8,7 @@
#include <vector>
#include <numeric>
#include <type_traits>
#include <optional>
#include <dune/common/hybridutilities.hh>
#include <dune/common/iteratorrange.hh>
@@ -289,6 +290,18 @@ auto testTransformedRangeView()
suite.check(checkSameRange(rc, std::vector{1, 2, 3}))
<< "accessing mutable range via const reference failed";
}
{
auto transformedIterator = [](auto&& it, auto&& f) {
using It = std::decay_t<decltype(it)>;
using F = std::decay_t<decltype(f)>;
using TIt = Dune::Impl::TransformedRangeIterator<It, std::optional<F>, Dune::ValueTransformationTag>;
return TIt(std::forward<decltype(it)>(it), std::forward<decltype(f)>(f));
};
auto it = transformedIterator(Dune::range(0,5).begin(), [](auto x) { return 2*x; });
auto end = transformedIterator(Dune::range(0,4).end(), [](auto x) {return 0;});
for(; it!=end; ++it)
std::cout << *it << std::endl;
}
return suite;
}
Loading