¿Por qué las instalaciones de INVOKE en el estándar de C ++ 11 se refieren a miembros de datos?

$ 20.8.2 de la norma describe la facilidad de INVOKE que se usa principalmente para describir cómo se llaman los callables con las listas de argumentos variables en toda la biblioteca estándar:

Defina FACTURA (f, t1, t2, ..., tN) de la siguiente manera:

(t1.*f)(t2, ..., tN) cuando f es un puntero a una función miembro de una clase T y t1 es un objeto de tipo T o una referencia a un objeto de tipo T o una referencia a un objeto de un tipo derivado de T;

((*t1).*f)(t2, ..., tN) cuando f es un puntero a una función miembro de una clase T y t1 no es uno de los tipos descritos en el elemento anterior;

t1.*f cuando N == 1 y f es un puntero a los datos del miembro de una clase T y t1 es un objeto de tipo T o una referencia a un objeto de tipo T o una referencia a un objeto de un tipo derivado de T;

(*t1).*f cuando N == 1 y f es un puntero a los datos de miembros de una clase T y t1 no es uno de los tipos descritos en el elemento anterior;

f(t1, t2, ..., tN) en todos los otros casos.

¿Para qué son el tercer y el cuarto ítem? Por lo que puedo decir, no llamanf incluso sif es llamable ¿Cuál es el caso del usuario para ellos? Tal vez sea un error tipográfico en el estándar y*f() ¿se pretendía?

Respuestas a la pregunta(1)

Su respuesta a la pregunta