From 655aa3e9de1881b53d6616527d89ba6f36b5b358 Mon Sep 17 00:00:00 2001 From: Radnyx Date: Tue, 23 Jun 2026 14:26:23 -0700 Subject: [PATCH] Add entry and description for the triadic NewArray operator. --- ltx/exprs.tex | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ltx/exprs.tex b/ltx/exprs.tex index b10af48..d73fb75 100644 --- a/ltx/exprs.tex +++ b/ltx/exprs.tex @@ -2681,6 +2681,7 @@ \subsection{Triadic operators} \enumerator{Choice} \enumerator{ConstructAt} \enumerator{Initialize} + \enumerator{NewArray} \setcounter{enumi}{1023} \enumerator{Msvc} @@ -2715,6 +2716,20 @@ \subsection{Triadic operators} C++ abstract machine operation. +\ifcSortSection{NewArray}{TriadicOperator} +Abstract machine operation corresponding to allocating appropriate storage for an array and initializing its elements +if an initializer is present. + +When used as the value for the \field{assoc} field of a \sortref{Triad}{ExprSort} structure, that structure +represents the semantic operation for an array \grammar{new-expression}, where +\begin{itemize} + \item the first operand designates the array object type + \item the second operand designates the array bound + \item the third operand designates the initializer, or is null if no initializer is present +\end{itemize} + +A null third operand designates absence of an initializer, as in \code{new T[n]}, and is distinct from an empty initializer list. + \ifcSortSection{Msvc}{TriadicOperator} This is a marker, not an actual operator. Triadic operators with value greater that this are MSVC extensions.