summaryrefslogtreecommitdiff
path: root/src/utils/cpp/transformed_range.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/cpp/transformed_range.hpp')
-rw-r--r--src/utils/cpp/transformed_range.hpp46
1 files changed, 23 insertions, 23 deletions
diff --git a/src/utils/cpp/transformed_range.hpp b/src/utils/cpp/transformed_range.hpp
index f28029f3..cc3fe5d6 100644
--- a/src/utils/cpp/transformed_range.hpp
+++ b/src/utils/cpp/transformed_range.hpp
@@ -30,16 +30,16 @@
/// \brief Transform iterable sequence "on the fly" invoking the given
/// transformation callback. If the callback throws an exception,
/// std::terminate is called.
-/// \tparam Iterator Type of the iterator of the sequence to be
+/// \tparam TIterator Type of the iterator of the sequence to be
/// transformed.
/// \tparam Result Type of the transformation result.
-template <typename Iterator, typename Result>
+template <typename TIterator, typename Result>
class TransformedRange final {
public:
using converter_t =
- std::function<Result(typename Iterator::value_type const&)>;
+ std::function<Result(typename TIterator::value_type const&)>;
- class iterator final {
+ class Iterator final {
public:
using value_type = std::remove_reference_t<Result>;
using pointer = value_type*;
@@ -47,9 +47,9 @@ class TransformedRange final {
using difference_type = std::ptrdiff_t;
using iterator_category = std::forward_iterator_tag;
- iterator() noexcept = default;
- iterator(Iterator iterator, converter_t c) noexcept
- : iterator_(std::move(iterator)), c_(std::move(c)) {}
+ Iterator() noexcept = default;
+ Iterator(TIterator Iterator, converter_t c) noexcept
+ : iterator_(std::move(Iterator)), c_(std::move(c)) {}
auto operator*() const noexcept -> decltype(auto) {
try {
@@ -59,35 +59,35 @@ class TransformedRange final {
}
}
- auto operator++() noexcept -> iterator& {
+ auto operator++() noexcept -> Iterator& {
++iterator_;
return *this;
}
- [[nodiscard]] friend auto operator==(iterator const& lhs,
- iterator const& rhs) noexcept
+ [[nodiscard]] friend auto operator==(Iterator const& lhs,
+ Iterator const& rhs) noexcept
-> bool {
return lhs.iterator_ == rhs.iterator_;
}
- [[nodiscard]] friend auto operator!=(iterator const& lhs,
- iterator const& rhs) noexcept
+ [[nodiscard]] friend auto operator!=(Iterator const& lhs,
+ Iterator const& rhs) noexcept
-> bool {
return not(lhs == rhs);
}
private:
- Iterator iterator_{};
+ TIterator iterator_{};
converter_t c_{};
};
- TransformedRange(Iterator begin, Iterator end, converter_t c) noexcept
+ TransformedRange(TIterator begin, TIterator end, converter_t c) noexcept
: begin_{std::move(begin), std::move(c)},
end_{std::move(end), nullptr} {}
- [[nodiscard]] auto begin() const noexcept -> iterator { return begin_; }
- [[nodiscard]] auto end() const noexcept -> iterator { return end_; }
- [[nodiscard]] auto size() const -> typename iterator::difference_type {
+ [[nodiscard]] auto begin() const noexcept -> Iterator { return begin_; }
+ [[nodiscard]] auto end() const noexcept -> Iterator { return end_; }
+ [[nodiscard]] auto size() const -> typename Iterator::difference_type {
return std::distance(begin_, end_);
}
@@ -101,17 +101,17 @@ class TransformedRange final {
}
private:
- iterator const begin_;
- iterator const end_;
+ Iterator const begin_;
+ Iterator const end_;
};
// User-defined deduction guide to help compiler dealing with generic lambdas
// and invokable objects.
-template <typename Iterator,
+template <typename TIterator,
typename Function,
- typename IteratorValue = typename Iterator::value_type>
-TransformedRange(Iterator, Iterator, Function)
- -> TransformedRange<Iterator,
+ typename IteratorValue = typename TIterator::value_type>
+TransformedRange(TIterator, TIterator, Function)
+ -> TransformedRange<TIterator,
std::invoke_result_t<Function, IteratorValue>>;
#endif // INCLUDED_SRC_OTHER_TOOLS_TRANSFORMED_RANGE_HPP