Skip to content

Commit

Permalink
[class.copy.assign] Use Oxford comma.
Browse files Browse the repository at this point in the history
Also convert some text font spaces into tcode spaces.
  • Loading branch information
Quuxplusone authored and zygoloid committed Nov 6, 2018
1 parent 9437d29 commit 12935b8
Showing 1 changed file with 13 additions and 33 deletions.
46 changes: 13 additions & 33 deletions source/classes.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1777,11 +1777,11 @@
\indextext{operator!move assignment|see{assignment operator, move}}%
A user-declared \term{copy} assignment operator \tcode{X::operator=} is a
non-static non-template member function of class \tcode{X} with exactly one
parameter of type \tcode{X}, \tcode{X\&}, \tcode{const} \tcode{X\&},
\tcode{volatile} \tcode{X\&} or \tcode{const} \tcode{volatile}
\tcode{X\&}.\footnote{Because a template assignment operator or an assignment
operator taking an rvalue reference parameter is never a copy assignment
operator, the presence of such an assignment operator does not suppress the
parameter of type \tcode{X}, \tcode{X\&}, \tcode{const X\&},
\tcode{volatile X\&}, or \tcode{const volatile X\&}.\footnote{Because
a template assignment operator or an assignment operator
taking an rvalue reference parameter is never a copy assignment operator,
the presence of such an assignment operator does not suppress the
implicit declaration of a copy assignment operator. Such assignment operators
participate in overload resolution with other assignment operators, including
copy assignment operators, and, if selected, will be used to assign an object.}
Expand Down Expand Up @@ -1838,40 +1838,20 @@

\begin{itemize}
\item
each direct base class
\tcode{B}
of
\tcode{X}
each direct base class \tcode{B} of \tcode{X}
has a copy assignment operator whose parameter is of type
\tcode{const}
\tcode{B\&},
\tcode{const}
\tcode{volatile}
\tcode{B\&}
or
\tcode{B},
and
\tcode{const B\&}, \tcode{const volatile B\&}, or \tcode{B}, and
\item
for all the non-static data members of
\tcode{X}
that are of a class type
\tcode{M}
(or array thereof),
for all the non-static data members of \tcode{X}
that are of a class type \tcode{M} (or array thereof),
each such class type has a copy assignment operator whose parameter is of type
\tcode{const}
\tcode{M\&},
\tcode{const}
\tcode{volatile}
\tcode{M\&}
or
\tcode{M}.\footnote{This implies that the reference parameter of the
\tcode{const M\&}, \tcode{const volatile M\&},
or \tcode{M}.\footnote{This implies that the reference parameter of the
implicitly-declared copy assignment operator cannot bind to a
\tcode{volatile}
lvalue; see~\ref{diff.class}.}
\tcode{volatile} lvalue; see~\ref{diff.class}.}
\end{itemize}

Otherwise, the implicitly-declared copy
assignment operator
Otherwise, the implicitly-declared copy assignment operator
will have the form

\begin{codeblock}
Expand Down

0 comments on commit 12935b8

Please sign in to comment.