taepper commented on code in PR #50714:
URL: https://github.com/apache/arrow/pull/50714#discussion_r3676479493
##########
cpp/src/arrow/util/iterator.h:
##########
@@ -520,12 +517,11 @@ struct FilterIterator {
};
/// \brief Like MapIterator, but where the function can fail or reject
elements.
-template <
- typename Fn, typename From = typename
internal::call_traits::argument_type<0, Fn>,
- typename Ret = typename internal::call_traits::return_type<Fn>::ValueType,
- typename To = typename std::tuple_element<0, Ret>::type,
- typename Enable = typename std::enable_if<std::is_same<
- typename std::tuple_element<1, Ret>::type,
FilterIterator::Action>::value>::type>
+template <typename Fn, typename From,
+ typename Ret = typename std::invoke_result_t<Fn&, From>::ValueType,
+ typename To = std::tuple_element_t<0, Ret>,
+ typename Enable = std::enable_if_t<
Review Comment:
This is a very good point, I fixed this locally:
```diff
commit f07ffc993ea0337052490b5fedc8d5ea4c601b5a (HEAD ->
minimize-functional-metaprogramming)
Author: Alexander Taepper <[email protected]>
Date: Wed Jul 29 19:05:30 2026 +0200
replace another `typename Enable` with `requires`
diff --git a/cpp/src/arrow/util/iterator.h b/cpp/src/arrow/util/iterator.h
index 3a098b1455..aaf6531dfe 100644
--- a/cpp/src/arrow/util/iterator.h
+++ b/cpp/src/arrow/util/iterator.h
@@ -519,9 +519,8 @@ struct FilterIterator {
/// \brief Like MapIterator, but where the function can fail or reject
elements.
template <typename Fn, typename From,
typename Ret = typename std::invoke_result_t<Fn&,
From>::ValueType,
- typename To = std::tuple_element_t<0, Ret>,
- typename Enable = std::enable_if_t<
- std::is_same_v<std::tuple_element_t<1, Ret>,
FilterIterator::Action>>>
+ typename To = std::tuple_element_t<0, Ret>>
+ requires std::is_same_v<std::tuple_element_t<1, Ret>,
FilterIterator::Action>
Iterator<To> MakeFilterIterator(Fn filter, Iterator<From> it) {
return Iterator<To>(
FilterIterator::Impl<Fn, From, To>(std::move(filter), std::move(it)));
```
Is it okay to push these changes @pitrou ? I can also do this in the second
part of #50250 instead.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]