21#if !defined(__cpp_lib_not_fn) && !(defined(_LIBCPP_VERSION) && __cplusplus > 201103L)
23#define R__NOTFN_BACKPORT
32namespace __ROOT_noinline {
38 explicit not_fn_t(F &&
f) : fFun(std::forward<F>(
f)) {}
39 not_fn_t(not_fn_t &&
h) =
default;
40 not_fn_t(
const not_fn_t &
f) =
default;
42 template <
class... Args>
44 operator()(Args &&...args) & ->
decltype(!std::declval<ROOT::TypeTraits::InvokeResult_t<std::decay_t<F>, Args...>>())
46 return !fFun(std::forward<Args>(args)...);
48 template <
class... Args>
50 const & ->
decltype(!std::declval<ROOT::TypeTraits::InvokeResult_t<std::decay_t<F>
const, Args...>>())
52 return !fFun(std::forward<Args>(args)...);
59__ROOT_noinline::not_fn_t<F> not_fn(F &&
f)
61 return __ROOT_noinline::not_fn_t<F>(std::forward<F>(
f));
TRObject operator()(const T1 &t1) const