Почему средство INVOKE в стандарте C ++ 11 относится к элементам данных?

$ 20.8.2 стандарта описывает средство INVOKE, которое в основном используется для описания того, как вызываемые вызовы вызываются списками аргументов с переменным числом по всей стандартной библиотеке:

Define INVOKE (f, t1, t2, ..., tN) as follows:

(t1.*f)(t2, ..., tN) when f is a pointer to a member function of a class T and t1 is an object of type T or a reference to an object of type T or a reference to an object of a type derived from T;

((*t1).*f)(t2, ..., tN) when f is a pointer to a member function of a class T and t1 is not one of the types described in the previous item;

t1.*f when N == 1 and f is a pointer to member data of a class T and t1 is an object of type T or a reference to an object of type T or a reference to an object of a type derived from T;

(*t1).*f when N == 1 and f is a pointer to member data of a class T and t1 is not one of the types described in the previous item;

f(t1, t2, ..., tN) in all other cases.

Для чего нужен третий и четвертый пункт? Насколько я могу судить, они не звонятf даже еслиf вызывается. Каков пользовательский случай для них. Может быть, это опечатка в стандарте и*f() был предназначен?

Ответы на вопрос(1)

Ваш ответ на вопрос