template <typename T>

struct Function

Template struct Function

<F

>, where F must be a function type, contains

the following typedefs:

Result: the function's return type.

Arg

<N

>: the type of the N-th argument, where N starts with 0.

ArgumentTuple: the tuple type consisting of all parameters of F.

ArgumentMatcherTuple: the tuple type consisting of Matchers for all

parameters of F.

MakeResultVoid: the function type obtained by substituting void

for the return type of F.

MakeResultIgnoredValue:

the function type obtained by substituting Something

for the return type of F.