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

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

Определите INVOKE (f, t1, t2, ..., tN) следующим образом:

 (t1.*f)(t2, ..., tN) когда f является указателем на функцию-член класса T и t1 является объектом типа T или ссылкой на объект типа T или ссылкой на объект типа, производного от T; -

 ((*t1).*f)(t2, ..., tN) когда f является указателем на функцию-член класса T и t1 не является одним из типов, описанных в предыдущем пункте;

 t1.*f когда N == 1 и f - указатель на данные члена класса T, а t1 - объект типа T или ссылка на объект типа T или ссылка на объект типа, производного от T; -

 (*t1).*f когда N == 1 и f - указатель на данные члена класса T, а t1 не относится к типам, описанным в предыдущем пункте;

 f(t1, t2, ..., tN) во всех остальных случаях.

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

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

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