forwards.h 862 B

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // iterator_fwd.h
  3. // iterator
  4. //
  5. // Created by Sam Jaffe on 2/18/17.
  6. //
  7. #pragma once
  8. #include <cstdlib>
  9. #include <iterator>
  10. namespace iterator {
  11. struct sentinel_t;
  12. // Iterator types
  13. template <typename It> class EndAwareIterator;
  14. template <typename It, typename Predicate> class FilterIterator;
  15. template <typename OIt> class JoinIterator;
  16. template <typename It> class ValuesIterator;
  17. template <typename... Its> class ZipIterator;
  18. struct unbounded {};
  19. template <size_t N>
  20. requires(N > 0)
  21. struct bounded {};
  22. template <typename It, typename MaxDepth = unbounded> class RecursiveIterator;
  23. template <typename It, size_t N>
  24. using RecursiveIteratorN = RecursiveIterator<It, bounded<N>>;
  25. template <typename CRTP> class Facade;
  26. template <typename It, typename CRTP,
  27. typename = typename std::iterator_traits<It>::iterator_category>
  28. class Proxy;
  29. }