From Jason Turner

[dcl.fct.def.delete]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpgifobqki/{from.md → to.md} +10 -4
tmp/tmpgifobqki/{from.md → to.md} RENAMED
@@ -1,22 +1,28 @@
1
  ### Deleted definitions <a id="dcl.fct.def.delete">[[dcl.fct.def.delete]]</a>
2
 
3
  A *deleted definition* of a function is a function definition whose
4
- *function-body* is of the form `= delete ;` or an explicitly-defaulted
5
  definition of the function where the function is defined as deleted. A
6
  *deleted function* is a function with a deleted definition or a function
7
  that is implicitly defined as deleted.
8
 
9
- A program that refers to a deleted function implicitly or explicitly,
10
- other than to declare it, is ill-formed.
 
 
 
 
11
 
12
  [*Note 1*: This includes calling the function implicitly or explicitly
13
  and forming a pointer or pointer-to-member to the function. It applies
14
  even for references in expressions that are not potentially-evaluated.
15
  For an overload set, only the function selected by overload resolution
16
  is referenced. The implicit odr-use [[term.odr.use]] of a virtual
17
- function does not, by itself, constitute a reference. — *end note*]
 
 
18
 
19
  [*Example 1*:
20
 
21
  One can prevent default initialization and initialization by
22
  non-`double`s with
 
1
  ### Deleted definitions <a id="dcl.fct.def.delete">[[dcl.fct.def.delete]]</a>
2
 
3
  A *deleted definition* of a function is a function definition whose
4
+ *function-body* is a *deleted-function-body* or an explicitly-defaulted
5
  definition of the function where the function is defined as deleted. A
6
  *deleted function* is a function with a deleted definition or a function
7
  that is implicitly defined as deleted.
8
 
9
+ A construct that designates a deleted function implicitly or explicitly,
10
+ other than to declare it or to appear as the operand of a
11
+ *reflect-expression* [[expr.reflect]], is ill-formed.
12
+
13
+ *Recommended practice:* The resulting diagnostic message should include
14
+ the text of the *unevaluated-string*, if one is supplied.
15
 
16
  [*Note 1*: This includes calling the function implicitly or explicitly
17
  and forming a pointer or pointer-to-member to the function. It applies
18
  even for references in expressions that are not potentially-evaluated.
19
  For an overload set, only the function selected by overload resolution
20
  is referenced. The implicit odr-use [[term.odr.use]] of a virtual
21
+ function does not, by itself, constitute a reference. The
22
+ *unevaluated-string*, if present, can be used to explain the rationale
23
+ for deletion and/or to suggest an alternative. — *end note*]
24
 
25
  [*Example 1*:
26
 
27
  One can prevent default initialization and initialization by
28
  non-`double`s with