A universal reference refers to a reference type that may either be an lvalue reference or an rvalue reference depending on its initializer. They allow the user to employ perfect-forwarding.
Both auto&&
and the T&&
in template<class T> void f(T&&);
are universal references.
Scott Meyers did an excellent talk on the topic, which can be found here.
When adding this to the draft of the next C++ standard, the focus was on the perfect-forwarding, and so the term forwarding reference was chosen.