[PATCH] D52281: [clang-tidy] Add modernize check to use std::invoke in generic code
Roman Lebedev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Sep 21 00:42:40 PDT 2018
lebedev.ri added inline comments.
================
Comment at: clang-tidy/modernize/ReplaceGenericFunctorCallCheck.cpp:27-32
+ // template<class T>
+ // void f(T func) {
+ // func();
+ // ^~~~~~~
+ // ::std::invoke(func, 1)
+ Finder->addMatcher(callExpr(has(declRefExpr())).bind("functor"), this);
----------------
aaron.ballman wrote:
> lebedev.ri wrote:
> > Bikeshedding: i do not understand the idea behind `std::invoke`.
> > Why is the new version better/preferred?
> It generically handles all the various kinds of "callable" objects (lambdas, functors, function pointers, pointer to member functions, etc).
Thank you for answering, but i still do not understand.
E.g. on that example, what benefits does it give?
Even after looking at cppreference, i'm not sure..
Just curious.
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D52281
More information about the cfe-commits
mailing list