Why does decltype(auto) return a reference here?
7.1.6.2 [dcl.type.simple] For an expression e, the type denoted by decltype(e) is defined as follows: — if e is an unparenthesized id-expression or an unparenthesized class member access (5.2.5), decltype(e) is the type of the entity named by e. If there is no such entity, or if e names a set of overloaded functions, the … Read more