diff options
author | Alexander Fokin <apfokin@gmail.com> | 2022-02-10 16:45:38 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:38 +0300 |
commit | 863a59a65247c24db7cb06789bc5cf79d04da32f (patch) | |
tree | 139dc000c8cd4a40f5659e421b7c75135d080307 /util/generic/iterator_range.h | |
parent | f64e95a9eb9ab03240599eb9581c5a9102426a96 (diff) | |
download | ydb-863a59a65247c24db7cb06789bc5cf79d04da32f.tar.gz |
Restoring authorship annotation for Alexander Fokin <apfokin@gmail.com>. Commit 1 of 2.
Diffstat (limited to 'util/generic/iterator_range.h')
-rw-r--r-- | util/generic/iterator_range.h | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/util/generic/iterator_range.h b/util/generic/iterator_range.h index 9f4d02da29..1011553e37 100644 --- a/util/generic/iterator_range.h +++ b/util/generic/iterator_range.h @@ -1,10 +1,10 @@ -#pragma once - +#pragma once + #include <util/system/yassert.h> -#include <iterator> -#include <utility> - +#include <iterator> +#include <utility> + template <typename TBegin, typename TEnd = TBegin> struct TIteratorRange { using TElement = std::remove_reference_t<decltype(*std::declval<TBegin>())>; @@ -40,35 +40,35 @@ private: template <class TIterator> class TIteratorRange<TIterator, TIterator> { -public: +public: using iterator = TIterator; using const_iterator = TIterator; using value_type = typename std::iterator_traits<iterator>::value_type; using reference = typename std::iterator_traits<iterator>::reference; using const_reference = typename std::iterator_traits<const_iterator>::reference; using difference_type = typename std::iterator_traits<iterator>::difference_type; - using size_type = std::size_t; - + using size_type = std::size_t; + TIteratorRange() : Begin_() , End_() { } - + TIteratorRange(TIterator begin, TIterator end) - : Begin_(begin) - , End_(end) + : Begin_(begin) + , End_(end) { } - + TIterator begin() const { - return Begin_; - } - + return Begin_; + } + TIterator end() const { - return End_; - } - + return End_; + } + Y_PURE_FUNCTION bool empty() const { return Begin_ == End_; } @@ -83,20 +83,20 @@ public: return *(Begin_ + at); } -private: +private: TIterator Begin_; TIterator End_; -}; - +}; + template <class TIterator> TIteratorRange<TIterator> MakeIteratorRange(TIterator begin, TIterator end) { return TIteratorRange<TIterator>(begin, end); -} - +} + template <class TIterator> TIteratorRange<TIterator> MakeIteratorRange(const std::pair<TIterator, TIterator>& range) { return TIteratorRange<TIterator>(range.first, range.second); -} +} template <class TBegin, class TEnd> TIteratorRange<TBegin, TEnd> MakeIteratorRange(TBegin begin, TEnd end) { |