#ifndef PYTHONIC_INCLUDE_ITERTOOLS_REPEAT_HPP #define PYTHONIC_INCLUDE_ITERTOOLS_REPEAT_HPP #include "pythonic/include/utils/functor.hpp" #include PYTHONIC_NS_BEGIN namespace itertools { template struct repeat_iterator : std::iterator { T value_; long count_; repeat_iterator(T value, long count); repeat_iterator &operator++(); T operator*(); bool operator!=(repeat_iterator const &other) const; bool operator==(repeat_iterator const &other) const; bool operator<(repeat_iterator const &other) const; }; template struct _repeat : repeat_iterator { using iterator = repeat_iterator; using value_type = typename iterator::value_type; _repeat() = default; _repeat(T value, long count); iterator begin() const; iterator end() const; }; template _repeat repeat(T value, long num_elts); template _repeat repeat(T iter); DEFINE_FUNCTOR(pythonic::itertools, repeat); } PYTHONIC_NS_END /* type inference stuff {*/ #include "pythonic/include/types/combined.hpp" template struct __combined> { using type = typename __combined< E, container::value_type>>::type; }; /* } */ #endif