From 9215c35975be745628e8188473154c7e476add55 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Tue, 4 Feb 2014 23:18:54 -0800 Subject: Wrap remaining FDs in a class --- src/common/utils2.hpp | 53 +++++++-------------------------------------------- 1 file changed, 7 insertions(+), 46 deletions(-) (limited to 'src/common/utils2.hpp') diff --git a/src/common/utils2.hpp b/src/common/utils2.hpp index 0f72aff..ac55a5a 100644 --- a/src/common/utils2.hpp +++ b/src/common/utils2.hpp @@ -9,6 +9,8 @@ # include # include +# include "iter.hpp" + # ifdef __clang__ # define FALLTHROUGH [[clang::fallthrough]] # else @@ -92,25 +94,6 @@ public: } }; -template -class IteratorPair -{ - It _b, _e; -public: - IteratorPair(It b, It e) - : _b(b), _e(e) - {} - - It begin() { return _b; } - It end() { return _e; } -}; - -template -IteratorPair iterator_pair(It b, It e) -{ - return {b, e}; -} - // std::underlying_type isn't supported until gcc 4.7 // this is a poor man's emulation template @@ -177,41 +160,19 @@ E operator ~ (E r) \ } template -class EnumValueIterator +class EnumMath { typedef typename underlying_type::type U; - E value; public: - EnumValueIterator(E v) - : value(v) - {} - - E operator *() - { - return value; - } - EnumValueIterator& operator++ () - { - value = E(U(value) + 1); - return *this; - } - EnumValueIterator& operator-- () - { - value = E(U(value) - 1); - return *this; - } - friend bool operator == (EnumValueIterator l, EnumValueIterator r) - { - return l.value == r.value; - } - friend bool operator != (EnumValueIterator l, EnumValueIterator r) + static + E inced(E v) { - return !(l == r); + return E(U(v) + 1); } }; template -IteratorPair> erange(E b, E e) +IteratorPair>> erange(E b, E e) { return {b, e}; } -- cgit v1.2.3-70-g09d2