|
142 | 142 |
|
143 | 143 | \rSec1[class.prop]{Properties of classes}
|
144 | 144 |
|
145 |
| -\pnum |
146 |
| -Two special member functions are of the same kind if: |
147 |
| -\begin{itemize} |
148 |
| -\item they are both default constructors, |
149 |
| -\item they are both copy or move constructors |
150 |
| -with the same first parameter type, or |
151 |
| -\item they are both copy or move assignment operators |
152 |
| -with the same first parameter type |
153 |
| -and the same \grammarterm{cv-qualifier}s and \grammarterm{ref-qualifier}, if any. |
154 |
| -\end{itemize} |
155 |
| - |
156 |
| -\pnum |
157 |
| -An \defnadj{eligible}{special member function} is a special member function\iref{special} for which: |
158 |
| -\begin{itemize} |
159 |
| -\item the function is not deleted, |
160 |
| -\item the associated constraints\iref{temp.constr}, if any, are satisfied, and |
161 |
| -\item no special member function of the same kind is more constrained\iref{temp.constr.order}. |
162 |
| -\end{itemize} |
163 |
| - |
164 | 145 | \pnum
|
165 | 146 | A \defnadj{trivially copyable}{class} is a class:
|
166 | 147 |
|
167 | 148 | \begin{itemize}
|
168 |
| -\item that has at least one eligible copy constructor, move constructor, |
| 149 | +\item that has at least one eligible |
| 150 | +copy constructor, move constructor, |
169 | 151 | copy assignment operator, or
|
170 |
| -move assignment operator~(\ref{class.copy.ctor}, \ref{class.copy.assign}), |
| 152 | +move assignment operator~(\ref{special}, \ref{class.copy.ctor}, \ref{class.copy.assign}), |
171 | 153 | \item where each eligible copy constructor, move constructor, copy assignment operator,
|
172 | 154 | and move assignment operator is trivial, and
|
173 | 155 | \item that has a trivial, non-deleted destructor\iref{class.dtor}.
|
|
1213 | 1195 | ensures that only derived classes and friends can create objects using it.
|
1214 | 1196 | \end{example}
|
1215 | 1197 |
|
| 1198 | +\pnum |
| 1199 | +Two special member functions are of the same kind if: |
| 1200 | +\begin{itemize} |
| 1201 | +\item they are both default constructors, |
| 1202 | +\item they are both copy or move constructors |
| 1203 | +with the same first parameter type, or |
| 1204 | +\item they are both copy or move assignment operators |
| 1205 | +with the same first parameter type |
| 1206 | +and the same \grammarterm{cv-qualifier}s and \grammarterm{ref-qualifier}, if any. |
| 1207 | +\end{itemize} |
| 1208 | + |
| 1209 | +\pnum |
| 1210 | +An \defnadj{eligible}{special member function} is a special member function for which: |
| 1211 | +\begin{itemize} |
| 1212 | +\item the function is not deleted, |
| 1213 | +\item the associated constraints\iref{temp.constr}, if any, are satisfied, and |
| 1214 | +\item no special member function of the same kind is more constrained\iref{temp.constr.order}. |
| 1215 | +\end{itemize} |
| 1216 | + |
1216 | 1217 | \pnum
|
1217 | 1218 | For a class, its non-static data members, its non-virtual direct base classes,
|
1218 | 1219 | and, if the class is not abstract\iref{class.abstract}, its virtual base
|
|
0 commit comments