Does anyone remember why our unique_ptr::get_deleter is defined as typename std::add_lvalue_reference<deleter_type>::type get_deleter(); rather than the simpler: deleter_type& get_deleter(); as specified in all the working drafts I've checked? Did an earlier version of GCC not do reference collapsing correctly?