From 6dec072a215b860feeeb0c895af71f47b598aaa5 Mon Sep 17 00:00:00 2001 From: Pagwin Date: Mon, 8 Apr 2024 15:58:43 -0400 Subject: [PATCH] added a bunch of stuff, repeat needs to change a bit to actually repeat forever --- include/pit/iters.h | 57 ++++++++++++++++++++++++++++++++++++++ include/pit/manipulators.h | 0 2 files changed, 57 insertions(+) delete mode 100644 include/pit/manipulators.h diff --git a/include/pit/iters.h b/include/pit/iters.h index e69de29..cf23dda 100644 --- a/include/pit/iters.h +++ b/include/pit/iters.h @@ -0,0 +1,57 @@ +#include +namespace pit{ + template + class passthrough{ + T underlying; + public: + passthrough(T underlying): underlying(underlying){} + passthrough(passthrough& from): underlying(from.underlying){} + passthrough operator+(std::size_t amount){ + return passthrough(this->underlying+amount); + } + void operator+=(std::size_t amount){ + this->underlying += amount; + } + passthrough operator-(std::size_t amount){ + return passthrough(this->underlying-amount); + } + void operator-=(std::size_t amount){ + this->underlying -= amount; + } + T const& operator*(){ + return this->underlying; + } + bool operator==(passthrough const& rhs){ + return this->underlying == rhs.underlying; + } + }; + template + class range{ + private: + T beginning; + T ending; + public: + range(T begin, T end):beginning(begin), ending(end){} + passthrough begin(){ + return passthrough(this->beginning); + } + passthrough end(){ + return passthrough(this->ending); + } + }; + + template + class repeat{ + T val; + public: + // noops + repeat operator+(std::size_t ){} + repeat operator-(std::size_t ){} + void operator+=(std::size_t ){} + void operator-=(std::size_t ){} + bool operator==(repeat const& rhs){return true;} + T const& operator*(){ + return this->val; + } + }; +} diff --git a/include/pit/manipulators.h b/include/pit/manipulators.h deleted file mode 100644 index e69de29..0000000