diff --git a/cpp/src/arrow/compute/kernels/codegen_internal.h b/cpp/src/arrow/compute/kernels/codegen_internal.h index fa89c86183fc..bfc529dc0a46 100644 --- a/cpp/src/arrow/compute/kernels/codegen_internal.h +++ b/cpp/src/arrow/compute/kernels/codegen_internal.h @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -479,9 +480,9 @@ struct UnboxScalar { // values, such as Decimal128 rather than std::string_view. template -static typename ::arrow::internal::call_traits::enable_if_return::type -VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, - NullFunc&& null_func) { + requires std::is_void_v::T>> +static void VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, + NullFunc&& null_func) { VisitArraySpanInline( arr, [&](typename GetViewType::PhysicalType v) { @@ -491,9 +492,10 @@ VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, } template -static typename ::arrow::internal::call_traits::enable_if_return::type -VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, - NullFunc&& null_func) { + requires std::is_same_v::T>, + Status> +static Status VisitArrayValuesInline(const ArraySpan& arr, VisitFunc&& valid_func, + NullFunc&& null_func) { return VisitArraySpanInline( arr, [&](typename GetViewType::PhysicalType v) { diff --git a/cpp/src/arrow/compute/kernels/hash_aggregate_internal.h b/cpp/src/arrow/compute/kernels/hash_aggregate_internal.h index f6462669adf0..1ba21bd9b89e 100644 --- a/cpp/src/arrow/compute/kernels/hash_aggregate_internal.h +++ b/cpp/src/arrow/compute/kernels/hash_aggregate_internal.h @@ -18,6 +18,7 @@ #pragma once #include +#include #include "arrow/array/data.h" #include "arrow/buffer_builder.h" @@ -149,9 +150,10 @@ struct GroupedValueTraits { }; template -typename arrow::internal::call_traits::enable_if_return::type -VisitGroupedValues(const ExecSpan& batch, ConsumeValue&& valid_func, - ConsumeNull&& null_func) { + requires std::is_void_v< + std::invoke_result_t::T>> +void VisitGroupedValues(const ExecSpan& batch, ConsumeValue&& valid_func, + ConsumeNull&& null_func) { auto g = batch[1].array.GetValues(1); if (batch[0].is_array()) { VisitArrayValuesInline( @@ -174,9 +176,10 @@ VisitGroupedValues(const ExecSpan& batch, ConsumeValue&& valid_func, } template -typename arrow::internal::call_traits::enable_if_return::type -VisitGroupedValues(const ExecSpan& batch, ConsumeValue&& valid_func, - ConsumeNull&& null_func) { + requires std::is_same_v< + std::invoke_result_t::T>, Status> +Status VisitGroupedValues(const ExecSpan& batch, ConsumeValue&& valid_func, + ConsumeNull&& null_func) { auto g = batch[1].array.GetValues(1); if (batch[0].is_array()) { return VisitArrayValuesInline( diff --git a/cpp/src/arrow/util/cache_internal.h b/cpp/src/arrow/util/cache_internal.h index 05e4ef2a34ee..fe10af8bb2aa 100644 --- a/cpp/src/arrow/util/cache_internal.h +++ b/cpp/src/arrow/util/cache_internal.h @@ -167,9 +167,8 @@ struct ThreadUnsafeMemoizer { }; template