|
1030 | 1030 | The implementation will implicitly declare these member functions for some class
|
1031 | 1031 | types when the program does not explicitly declare them.
|
1032 | 1032 | The implementation will implicitly define them
|
1033 |
| -if they are odr-used\iref{basic.def.odr} or |
| 1033 | +if they are odr-used\iref{term.odr.use} or |
1034 | 1034 | needed for constant evaluation\iref{expr.const}.
|
1035 | 1035 | \end{note}
|
1036 | 1036 | An implicitly-declared special member function is declared at the closing
|
|
1303 | 1303 | that is defaulted and not defined as deleted
|
1304 | 1304 | is
|
1305 | 1305 | \defnx{implicitly defined}{constructor!implicitly defined}
|
1306 |
| -when it is odr-used\iref{basic.def.odr} |
| 1306 | +when it is odr-used\iref{term.odr.use} |
1307 | 1307 | to create an object of its class type\iref{intro.object},
|
1308 | 1308 | when it is needed for constant evaluation\iref{expr.const}, or
|
1309 | 1309 | when it is explicitly defaulted after its first declaration.
|
|
1611 | 1611 | that is defaulted and not defined as deleted
|
1612 | 1612 | is
|
1613 | 1613 | \term{implicitly defined}
|
1614 |
| -when it is odr-used\iref{basic.def.odr}, |
| 1614 | +when it is odr-used\iref{term.odr.use}, |
1615 | 1615 | when it is needed for constant evaluation\iref{expr.const}, or
|
1616 | 1616 | when it is explicitly defaulted after its first declaration.
|
1617 | 1617 | \begin{note}
|
1618 | 1618 | The copy/move constructor is implicitly defined even if the implementation elided
|
1619 |
| -its odr-use~(\ref{basic.def.odr}, \ref{class.temporary}). |
| 1619 | +its odr-use~(\ref{term.odr.use}, \ref{class.temporary}). |
1620 | 1620 | \end{note}
|
1621 | 1621 | If the implicitly-defined constructor would satisfy the requirements of a
|
1622 | 1622 | constexpr constructor\iref{dcl.constexpr}, the implicitly-defined
|
|
1912 | 1912 | that is defaulted and not defined as deleted
|
1913 | 1913 | is
|
1914 | 1914 | \term{implicitly defined}
|
1915 |
| -when it is odr-used\iref{basic.def.odr} |
| 1915 | +when it is odr-used\iref{term.odr.use} |
1916 | 1916 | (e.g., when it is selected by overload resolution
|
1917 | 1917 | to assign to an object of its class type),
|
1918 | 1918 | when it is needed for constant evaluation\iref{expr.const}, or
|
|
2070 | 2070 | The program is ill-formed if overload resolution fails.
|
2071 | 2071 | Destructor selection does not constitute
|
2072 | 2072 | a reference to,
|
2073 |
| -or odr-use\iref{basic.def.odr} of, |
| 2073 | +or odr-use\iref{term.odr.use} of, |
2074 | 2074 | the selected destructor,
|
2075 | 2075 | and in particular,
|
2076 | 2076 | the selected destructor may be deleted\iref{dcl.fct.def.delete}.
|
|
2140 | 2140 | that is defaulted and not defined as deleted
|
2141 | 2141 | is
|
2142 | 2142 | \defnx{implicitly defined}{destructor!implicitly defined}
|
2143 |
| -when it is odr-used\iref{basic.def.odr} |
| 2143 | +when it is odr-used\iref{term.odr.use} |
2144 | 2144 | or when it is explicitly defaulted after its first declaration.
|
2145 | 2145 |
|
2146 | 2146 | \pnum
|
|
2747 | 2747 | \grammarterm{initializer-clause} that is an \grammarterm{assignment-expression}
|
2748 | 2748 | is a constant expression\iref{expr.const}.
|
2749 | 2749 | The member shall still be defined in a namespace scope if
|
2750 |
| -it is odr-used\iref{basic.def.odr} in the program and the |
| 2750 | +it is odr-used\iref{term.odr.use} in the program and the |
2751 | 2751 | namespace scope definition shall not contain an \grammarterm{initializer}.
|
2752 | 2752 | The declaration of an inline static data member (which is a definition)
|
2753 | 2753 | may specify a \grammarterm{brace-or-equal-initializer}. If the
|
|
2759 | 2759 | \pnum
|
2760 | 2760 | \begin{note}
|
2761 | 2761 | There is exactly one definition of a static data member
|
2762 |
| -that is odr-used\iref{basic.def.odr} in a valid program. |
| 2762 | +that is odr-used\iref{term.odr.use} in a valid program. |
2763 | 2763 | \end{note}
|
2764 | 2764 |
|
2765 | 2765 | \pnum
|
|
3205 | 3205 | called a \defnadj{local}{class}.
|
3206 | 3206 | \begin{note}
|
3207 | 3207 | A declaration in a local class
|
3208 |
| -cannot odr-use\iref{basic.def.odr} |
| 3208 | +cannot odr-use\iref{term.odr.use} |
3209 | 3209 | a local entity
|
3210 | 3210 | from an
|
3211 | 3211 | enclosing scope.
|
|
0 commit comments