In [decl.ref] https://eel.is/c++draft/dcl.ref#7, we say
If a typedef-name ([dcl.typedef], [temp.param]) or a decltype-specifier ([dcl.type.decltype]) denotes a type TR that is a reference to a type T, an attempt to create the type “lvalue reference to cv TR” creates the type “lvalue reference to T”, while an attempt to create the type “rvalue reference to cv TR” creates the type TR.
This does not account for recent additions to the language, namely pack indexing and type splicing
Suggested change
If a typedef-name ([dcl.typedef], [temp.param]) or a decltype-specifier ([dcl.type.decltype]) computed-type-specifier [dcl.type.simple] denotes a type TR that is a reference to a type T, an attempt to create the type “lvalue reference to cv TR” creates the type “lvalue reference to T”, while an attempt to create the type “rvalue reference to cv TR” creates the type TR.
In [decl.ref] https://eel.is/c++draft/dcl.ref#7, we say
This does not account for recent additions to the language, namely pack indexing and type splicing
Suggested change
If a typedef-name ([dcl.typedef], [temp.param]) or a
decltype-specifier ([dcl.type.decltype])computed-type-specifier [dcl.type.simple] denotes a type TR that is a reference to a type T, an attempt to create the type “lvalue reference to cv TR” creates the type “lvalue reference to T”, while an attempt to create the type “rvalue reference to cv TR” creates the type TR.