|
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