From Jason Turner

[basic.def]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpd7ftxjm2/{from.md → to.md} +11 -10
tmp/tmpd7ftxjm2/{from.md → to.md} RENAMED
@@ -1,12 +1,13 @@
1
  ## Declarations and definitions <a id="basic.def">[[basic.def]]</a>
2
 
3
- A declaration [[dcl.dcl]] may introduce one or more names into a
4
- translation unit or redeclare names introduced by previous declarations.
5
- If so, the declaration specifies the interpretation and semantic
6
- properties of these names. A declaration may also have effects
7
- including:
 
8
 
9
  - a static assertion [[dcl.pre]],
10
  - controlling template instantiation [[temp.explicit]],
11
  - guiding template argument deduction for constructors
12
  [[temp.deduct.guide]],
@@ -19,16 +20,16 @@ declaration unless:
19
  - it declares a function without specifying the function’s body
20
  [[dcl.fct.def]],
21
  - it contains the `extern` specifier [[dcl.stc]] or a
22
  *linkage-specification*[^1] [[dcl.link]] and neither an *initializer*
23
  nor a *function-body*,
24
- - it declares a non-inline static data member in a class definition (
25
- [[class.mem]], [[class.static]]),
26
  - it declares a static data member outside a class definition and the
27
  variable was defined within the class with the `constexpr` specifier
28
  (this usage is deprecated; see [[depr.static.constexpr]]),
29
- - it is introduced by an *elaborated-type-specifier* [[class.name]],
30
  - it is an *opaque-enum-declaration* [[dcl.enum]],
31
  - it is a *template-parameter* [[temp.param]],
32
  - it is a *parameter-declaration* [[dcl.fct]] in a function declarator
33
  that is not the *declarator* of a *function-definition*,
34
  - it is a `typedef` declaration [[dcl.typedef]],
@@ -130,8 +131,8 @@ struct C {
130
 
131
  [*Note 2*: A class name can also be implicitly declared by an
132
  *elaborated-type-specifier* [[dcl.type.elab]]. — *end note*]
133
 
134
  In the definition of an object, the type of that object shall not be an
135
- incomplete type [[basic.types]], an abstract class type
136
- [[class.abstract]], or a (possibly multi-dimensional) array thereof.
137
 
 
1
  ## Declarations and definitions <a id="basic.def">[[basic.def]]</a>
2
 
3
+ A declaration [[dcl.dcl]] may (re)introduce one or more names and/or
4
+ entities into a translation unit. If so, the declaration specifies the
5
+ interpretation and semantic properties of these names. A declaration of
6
+ an entity or *typedef-name* X is a redeclaration of X if another
7
+ declaration of X is reachable from it [[module.reach]]. A declaration
8
+ may also have effects including:
9
 
10
  - a static assertion [[dcl.pre]],
11
  - controlling template instantiation [[temp.explicit]],
12
  - guiding template argument deduction for constructors
13
  [[temp.deduct.guide]],
 
20
  - it declares a function without specifying the function’s body
21
  [[dcl.fct.def]],
22
  - it contains the `extern` specifier [[dcl.stc]] or a
23
  *linkage-specification*[^1] [[dcl.link]] and neither an *initializer*
24
  nor a *function-body*,
25
+ - it declares a non-inline static data member in a class definition
26
+ [[class.mem]], [[class.static]],
27
  - it declares a static data member outside a class definition and the
28
  variable was defined within the class with the `constexpr` specifier
29
  (this usage is deprecated; see [[depr.static.constexpr]]),
30
+ - it is an *elaborated-type-specifier* [[class.name]],
31
  - it is an *opaque-enum-declaration* [[dcl.enum]],
32
  - it is a *template-parameter* [[temp.param]],
33
  - it is a *parameter-declaration* [[dcl.fct]] in a function declarator
34
  that is not the *declarator* of a *function-definition*,
35
  - it is a `typedef` declaration [[dcl.typedef]],
 
131
 
132
  [*Note 2*: A class name can also be implicitly declared by an
133
  *elaborated-type-specifier* [[dcl.type.elab]]. — *end note*]
134
 
135
  In the definition of an object, the type of that object shall not be an
136
+ incomplete type [[term.incomplete.type]], an abstract class type
137
+ [[class.abstract]], or a (possibly multidimensional) array thereof.
138