func_val(--getfoo()); //
, . operator-- - -, ( lvalue ). func_val. , , , getfoo(), .
func_ref(getfoo()); //
, . getfoo() , const. , . , func_ref ( ).
func_ref(getfoo().ref());
, . , const , lvalue, .
. , vector.end() a T* (). non-class, .
func_ref(
, . #1, lvalue , const . #3 ( ).
const Foo & xref = --getfoo();
. , , , . --getfoo() l, , . , (, , , ).
, , getfoo() xref, xref .
, , .
( xref, . , ( , , , ), ).