From ad41a16f7dab50236fcde6f570d91117a957818f Mon Sep 17 00:00:00 2001 From: Krystian Date: Tue, 30 Apr 2019 10:04:13 -0400 Subject: [PATCH 1/3] [dcl.init.ref] References are bound to entities, not expressions --- source/declarations.tex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/declarations.tex b/source/declarations.tex index dc6707cef2..b5ddcd1c40 100644 --- a/source/declarations.tex +++ b/source/declarations.tex @@ -5324,8 +5324,8 @@ functions\iref{over.match.ref} and choosing the best one through overload resolution\iref{over.match}), \end{itemize} -then the reference is bound to the initializer expression lvalue in the -first case and to the lvalue result of the conversion +then the reference is bound to the object or function that the initializer expression refers to in the +first case and to the the object that the lvalue result of the conversion refers to in the second case (or, in either case, to the appropriate base class subobject of the object). \begin{note} The usual lvalue-to-rvalue\iref{conv.lval}, array-to-pointer\iref{conv.array}, @@ -5386,8 +5386,8 @@ its type \tcode{T4} is adjusted to type ``\cvqual{cv1} \tcode{T4}''\iref{conv.qual} and the temporary materialization conversion\iref{conv.rval} is applied. In any case, -the reference is bound to the resulting glvalue -(or to an appropriate base class subobject). +the reference is bound to the object or function that the resulting glvalue +refers to (or to an appropriate base class subobject). \begin{example} @@ -5429,7 +5429,7 @@ the initializer expression is implicitly converted to a prvalue of type ``\cvqual{cv1} \tcode{T1}''. The temporary materialization conversion is applied and the reference is -bound to the result. +bound to the object that the resulting xvalue refers to. \end{itemize} If From 04f81d68c20254e081dcd88bf46784b746df61bd Mon Sep 17 00:00:00 2001 From: Krystian Date: Tue, 30 Apr 2019 11:34:12 -0400 Subject: [PATCH 2/3] [dcl.init.ref] Updated wording to be more standard conforming --- source/declarations.tex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/declarations.tex b/source/declarations.tex index b5ddcd1c40..c8243a1740 100644 --- a/source/declarations.tex +++ b/source/declarations.tex @@ -5324,8 +5324,8 @@ functions\iref{over.match.ref} and choosing the best one through overload resolution\iref{over.match}), \end{itemize} -then the reference is bound to the object or function that the initializer expression refers to in the -first case and to the the object that the lvalue result of the conversion refers to +then the reference is bound to the object or function to which the initializer expression refers in the +first case and to the object to which the lvalue result of the conversion refers in the second case (or, in either case, to the appropriate base class subobject of the object). \begin{note} The usual lvalue-to-rvalue\iref{conv.lval}, array-to-pointer\iref{conv.array}, @@ -5386,8 +5386,8 @@ its type \tcode{T4} is adjusted to type ``\cvqual{cv1} \tcode{T4}''\iref{conv.qual} and the temporary materialization conversion\iref{conv.rval} is applied. In any case, -the reference is bound to the object or function that the resulting glvalue -refers to (or to an appropriate base class subobject). +the reference is bound to the object or function to which the resulting glvalue +refers (or to an appropriate base class subobject). \begin{example} @@ -5429,7 +5429,7 @@ the initializer expression is implicitly converted to a prvalue of type ``\cvqual{cv1} \tcode{T1}''. The temporary materialization conversion is applied and the reference is -bound to the object that the resulting xvalue refers to. +bound to the object to which the resulting xvalue refers. \end{itemize} If From 96768af8943af62758226798ec5d064c1a9d2790 Mon Sep 17 00:00:00 2001 From: Krystian Date: Sun, 5 May 2019 13:15:52 -0400 Subject: [PATCH 3/3] [dcl.init.ref]/2 Added term "bound" for references to resolve inconsistency --- source/declarations.tex | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/declarations.tex b/source/declarations.tex index c8243a1740..aa7f53b59b 100644 --- a/source/declarations.tex +++ b/source/declarations.tex @@ -5255,6 +5255,9 @@ \end{codeblock} \end{example} +\pnum +A reference is said to be \defn{bound} to an object or function \tcode{E} when it is initialized to refer to \tcode{E}. + \pnum A reference cannot be changed to refer to another object after initialization. \indextext{assignment!reference}%