Use auto&
:
auto& ref_bigclass = GetBigClass();
References are supposed to be transparent: any operation on them happens on the object they refer to, there is no way to ‘get’ reference itself.
UPD: This is covered in 7.1.6.4/6:
Once the type of a declarator-id has been determined according to 8.3, the type of the declared variable using the declarator-id is determined from the type of its initializer using the rules for template argument deduction.
And template argument deduction is defined in 14.8.2.1/3:
If template parameter type P is a reference type, the type referred to by P is used for type deduction.
P.S. Note that this is different for decltype
: decltype(rx)
will yield int&
type (7.1.6.2/4).