| 12345678910111213141516171819202122232425262728293031 |
- //
- // 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;
- }
|