diff --git a/source/expressions.tex b/source/expressions.tex index afd7310c6f..03f4cc3d3c 100644 --- a/source/expressions.tex +++ b/source/expressions.tex @@ -3637,6 +3637,12 @@ of the program. Whether or not the destructor is called for the \tcode{std::type_info} object at the end of the program is unspecified. +\pnum +If the type of the \grammarterm{expression} or \grammarterm{type-id} operand is +a (possibly cv-qualified) class type or +a reference to (possibly cv-qualified) class type, +that class shall be completely defined. + \pnum When \keyword{typeid} is applied to a glvalue whose type is a polymorphic class type\iref{class.virtual}, the result refers to a @@ -3676,9 +3682,7 @@ \grammarterm{type-id}. If the type of the \grammarterm{type-id} is a reference to a possibly cv-qualified type, the result of the \keyword{typeid} expression refers to a \tcode{std::type_info} object -representing the cv-unqualified referenced type. If the type of -the \grammarterm{type-id} is a class type or a reference to a class type, -the class shall be completely-defined. +representing the cv-unqualified referenced type. \begin{note} The \grammarterm{type-id} cannot denote a function type with a \grammarterm{cv-qualifier-seq} or a \grammarterm{ref-qualifier}\iref{dcl.fct}.