| 123456789101112131415161718192021222324252627282930313233 |
- //
- // iterator_fwd.hpp
- // iterator
- //
- // Created by Sam Jaffe on 2/18/17.
- //
- #pragma once
- #include <iterator>
- #include <utility>
- namespace iterator {
- namespace detail {
- template <typename> struct void_t { using type = void; };
- template <typename IterType>
- using value_iterator = decltype(std::begin(*std::declval<IterType>()));
- template <typename IterType>
- using mapped_iterator =
- decltype(std::begin(std::declval<IterType>()->second));
- }
- struct {
- } in_place;
- using in_place_t = decltype(in_place);
- template <typename Iterator> class end_aware_iterator;
- template <typename MetaIterator> class joining_iterator;
- template <typename Iterator> class recursive_iterator;
- template <typename Iterator, std::size_t MaxDepth> class recursive_iterator_n;
- }
|