home | help
std::experi...nges::invoke(3)  C++ Standard Libary std::experi...nges::invoke(3)

NAME
     std::experimental::ranges::invoke - std::experimental::ranges::invoke

Synopsis
	Defined in header <experimental/ranges/functional>
	template<	  class 	F,	   class...	   Args        >
     (ranges TS)
	std::result_of_t<F&&(Args&&...)> invoke( F&& f, Args&&... args );

	Invoke the Callable object f with the parameters args,	and  return  the
     result, as if
	by   return   INVOKE(std::forward<F>(f),  std::forward<Args>(args)...);,
     where INVOKE(f,
	t1, t2, ..., tN) is defined as follows:

	  * if f is a pointer to member function of class T:

	  * If std::is_base_of<T,  std::decay_t<decltype(t1)>>::value  is  true,
     then INVOKE(f,
	    t1, t2, ..., tN) is equivalent to (t1.*f)(t2, ..., tN),
	  *   otherwise,   INVOKE(f,   t1,   t2,   ...,  tN)  is  equivalent  to
     ((*t1).*f)(t2, ..., tN).
	  * otherwise, if N == 1 and f is a pointer to data member of class T:

	  * If std::is_base_of<T,  std::decay_t<decltype(t1)>>::value  is  true,
     then INVOKE(f,
	    t1) is equivalent to t1.*f,
	  * otherwise, then INVOKE(f, t1) is equivalent to (*t1).*f.
	  *  otherwise,  INVOKE(f,  t1,  t2, ..., tN) is equivalent to f(t1, t2,
     ..., tN) (that
	    is, f is a FunctionObject).

Parameters
	f    - Callable object to be invoked
	args - arguments to pass to f

See also
	invoke	 invokes any Callable object with given arguments
	invoke_r and possibility to specify return type
	(C++17)  (since C++23)
	(C++23)  (function template)

http://cppreference.com 	   2024.06.10	   std::experi...nges::invoke(3)

home | help