An identifier expression, or id-expression, is a restricted form of
primary expression. Syntactically, an id-expression requires
a higher level of complexity than a simple identifier to provide a name for
all of the language elements of C++.
An id-expression can be either a qualified or unqualified identifier. It can also appear after the dot and arrow operators.
Syntax - id-expression >>-+-| unqualified_id |-+-------------------------------------->< '-| qualified_id |---' unqualified_id: |--+-identifier-------------+-----------------------------------| +-operator_function_id---+ +-conversion_function_id-+ +-~--class_name----------+ '-template_id------------' qualified_id: |--+-::--id-----------------------------------------------------------------------------------------------------+--| +-::--operator_function_id-----------------------------------------------------------------------------------+ +-::--template_id--------------------------------------------------------------------------------------------+ | .--------------------------------------. | | V | | '-+----+----+----------------------------------+-+--class_or_namespace--::--+----------+--| unqualified_id |-' '-::-' +-class_or_namespace--::-----------+ '-template-' '-class_or_namespace--::--template-'
Related References