Как это:
(obj.*obj.pf)(0, 1);
Доступ к члену (.
) имеет более высокий приоритет, чем указатель на оператор члена, поэтому это эквивалентно:
(obj.*(obj.pf))(0, 1);
Поскольку вызов функции также имеет более высокий приоритет, чем указатель на оператор-член, вы не можете сделать:
obj.*obj.pf(0, 1) /* or */ obj.*(obj.pf)(0, 1)
Как это было бы эквивалентно:
obj.*(obj.pf(0, 1)) // grammar expects obj.pf to be a callable returning a
// pointer to member