f1(t), t. static_cast<decltype(t)>(t) - . decltype(t) f1(t).
t int lvalue. ( , , lvalue, , , &t). "", , decltype.
f1 lvalue, t int&.
NB. , f1 decltype(t), t, , is_rvalue_reference f1. rvalue t , . f2, f1(std::move(t));, f1 t int decltype(t) f1 is int&&.