8 Expressions [expr]

8.1 Primary expressions [expr.prim]

8.1.4 Names [expr.prim.id] Unqualified names [expr.prim.id.unqual]

	~ class-name
	~ decltype-specifier
An identifier is an id-expression provided it has been suitably declared (Clause [dcl.dcl]).
For operator-function-ids, see [over.oper]; for conversion-function-ids, see [class.conv.fct]; for literal-operator-ids, see [over.literal]; for template-ids, see [temp.names].
A class-name or decltype-specifier prefixed by ~ denotes a destructor; see [class.dtor].
Within the definition of a non-static member function, an identifier that names a non-static member is transformed to a class member access expression ([class.mfct.non-static]).
end note
The type of the expression is the type of the identifier.
The result is the entity denoted by the identifier.
The expression is an lvalue if the entity is a function, variable, or data member and a prvalue otherwise; it is a bit-field if the identifier designates a bit-field ([dcl.struct.bind]).