diff options
Diffstat (limited to 'Swiften/Base/Algorithm.h')
| -rw-r--r-- | Swiften/Base/Algorithm.h | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/Swiften/Base/Algorithm.h b/Swiften/Base/Algorithm.h index 108dbe3..ee761b7 100644 --- a/Swiften/Base/Algorithm.h +++ b/Swiften/Base/Algorithm.h @@ -1,11 +1,11 @@ /* - * Copyright (c) 2011-2014 Isode Limited. + * Copyright (c) 2011-2018 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include <algorithm> #include <list> #include <map> @@ -154,10 +154,34 @@ namespace Swift { }; template <typename Map> bool key_compare(Map const& lhs, Map const& rhs) { auto pred = [](decltype(*lhs.begin()) a, decltype(a) b) { return a.first == b.first; }; return lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin(), pred); } + + /** + * Ranges + */ + template <typename T> + class range_t { + public: + range_t(T b, T e) : b_(b), e_(e) {} + + T begin() { + return b_; + } + T end() { + return e_; + } + private: + T b_; + T e_; + }; + + template <typename T> + range_t<T> range(T b, T e) { + return range_t<T>(b, e); + } } |
Swift