cpp/experimental/invocation type

Computes the invocation parameters when is called with the arguments, as in , where  is the operation defined in.

The invocation parameters of the expression is defined as follows, where  is the (possibly cv-qualified) type of  and  is  if  is an lvalue and  otherwise:


 * If is a pointer to a member function of a class, then the invocation parameters are  followed by the parameters of  matched by.
 * If and  is a pointer to member data of a class, then the invocation parameter is.
 * If is an object of class type, the invocation parameters are the parameters matching  of the best viable function for the arguments  among the function call operators and surrogate call functions of.
 * In all other cases, the invocations parameters are the parameters of matching.

If an argument matches an ellipsis in the function's parameter list, the corresponding invocation parameter is the result of applying the default argument promotions to.

and all types in can be any complete type, array of unknown bound, or (possibly cv-qualified).