#ifndef MIGRAPH_GUARD_RTGLIB_ITERATOR_FOR_HPP #define MIGRAPH_GUARD_RTGLIB_ITERATOR_FOR_HPP #include #include namespace migraph { template struct iterator_for_range { T* base; using base_iterator = std::remove_reference_tbegin())>; struct iterator { base_iterator i; base_iterator operator*() { return i; } base_iterator operator++() { return ++i; } bool operator!=(const iterator& rhs) { return i != rhs.i; } }; iterator begin() { assert(base != nullptr); return {base->begin()}; } iterator end() { assert(base != nullptr); return {base->end()}; } }; template iterator_for_range iterator_for(T& x) { return {&x}; } } // namespace migraph #endif