#ifndef PYTHONIC_BUILTIN_ITER_HPP #define PYTHONIC_BUILTIN_ITER_HPP #include "pythonic/include/builtins/iter.hpp" #include "pythonic/utils/functor.hpp" PYTHONIC_NS_BEGIN namespace builtins { namespace details { /// details iter implementation template iter::iter() { } // FIXME : There is a dangling reference as data.begin() is ! the one // from data "saved" in the "iter" struct template iter::iter(T data) : iterator(data.begin()), _end(data.end()), data(data) { } template typename iter::iterator &iter::begin() { return *this; } template typename iter::iterator const &iter::begin() const { return *this; } template typename iter::iterator const &iter::end() const { return _end; } } /// iter implementation template details::iter< typename std::remove_cv::type>::type> iter(T &&t) { return {std::forward(t)}; } } PYTHONIC_NS_END #endif