Если operator&
не перегружен, то по сути это то же самое https://godbolt.org/g/iPTjRY:
auto v_1 = f_1.get();
auto v_2 = (&f_1)->get();
разрешается практически так же:
lea rax, [rbp-12] ; load object address
mov rdi, rax ; move object address into rdi, not sure why not just: 'lea rdi, [rbp-12]'
call Foo::get() const ; invoke the subroutine
mov DWORD PTR [rbp-4], eax ; save the result at [rbp-4]
(уже без оптимизации они являютсято же самое, с включенной опцией ... все вызовы отбрасываются, так что это остается для любопытного читателя)