Предполагая, что вы на самом деле означали foo.operator->().operator()(1, 2)
, и что у вас есть контроль над классом Foo
, более простая форма будет (*foo)(1, 2)
. Для этого требуется operator*
к определенному, но, поскольку мы обычно ожидаем, что foo->bar
будет эквивалентно (*foo).bar
, это кажется разумным.
Если ваш Foo
- это некоторый класс интеллектуальных указателей, который указывает на объект, который определяет operator()
, это будет наиболее краткий способ вызова объекта operator()
.
Но без более подробной информации (и без предоставления вами выражения, которое на самом деле является допустимым C ++ - невозможно, чтобы operator(1, 2)
в том виде, в котором вы его написали, могло быть допустимым), невозможно ответить на ваш вопрос. Я просто догадываюсь, что ты пытаешься сделать.