Author: Benjamin Kramer Date: 2022-08-08T14:08:04+02:00 New Revision: 99a5a029e66643364c87d3945fb6990e943915dc
URL: https://github.com/llvm/llvm-project/commit/99a5a029e66643364c87d3945fb6990e943915dc DIFF: https://github.com/llvm/llvm-project/commit/99a5a029e66643364c87d3945fb6990e943915dc.diff LOG: [ASTMatchers] Replace hand-coded copy of std::apply with the real C++17 function. NFCI Added: Modified: clang/include/clang/ASTMatchers/ASTMatchersInternal.h Removed: ################################################################################ diff --git a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h index 49de9a458c3db..5785a72559987 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -1396,20 +1396,6 @@ struct VariadicOperatorMatcherFunc { } }; -template <typename F, typename Tuple, std::size_t... I> -constexpr auto applyMatcherImpl(F &&f, Tuple &&args, - std::index_sequence<I...>) { - return std::forward<F>(f)(std::get<I>(std::forward<Tuple>(args))...); -} - -template <typename F, typename Tuple> -constexpr auto applyMatcher(F &&f, Tuple &&args) { - return applyMatcherImpl( - std::forward<F>(f), std::forward<Tuple>(args), - std::make_index_sequence< - std::tuple_size<typename std::decay<Tuple>::type>::value>()); -} - template <typename T, bool IsBaseOf, typename Head, typename Tail> struct GetCladeImpl { using Type = Head; @@ -1428,12 +1414,11 @@ struct MapAnyOfMatcherImpl { template <typename... InnerMatchers> BindableMatcher<CladeType> operator()(InnerMatchers &&... InnerMatcher) const { - // TODO: Use std::apply from c++17 - return VariadicAllOfMatcher<CladeType>()(applyMatcher( + return VariadicAllOfMatcher<CladeType>()(std::apply( internal::VariadicOperatorMatcherFunc< 0, std::numeric_limits<unsigned>::max()>{ internal::DynTypedMatcher::VO_AnyOf}, - applyMatcher( + std::apply( [&](auto... Matcher) { return std::make_tuple(Matcher(InnerMatcher...)...); }, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits