#pragma once // TODO: Specify the concept of an iterator namespace gp { /** * @brief An enumeration that may be used to determine iterator categories * */ enum class iterator_type_t{ contiguous_iterator, /**< Defines an iterator for something that is continuous and random access */ non_contiguous_iterator, /**< Defines an iterator for a non contiguous datastructure, for example an iterator over a hashmap or a tree */ lazy_iterator /**< Defines an iterator for which the actual data layout and availability are still unknown */ }; }