From Jason Turner

[dcl.stc]

Diff to HTML by rtfpessoa

tmp/tmpit6yx3b_/{from.md → to.md} RENAMED
@@ -40,12 +40,12 @@ taken. This use is deprecated (see  [[depr.register]]).
40
 
41
  The `thread_local` specifier indicates that the named entity has thread
42
  storage duration ([[basic.stc.thread]]). It shall be applied only to
43
  the names of variables of namespace or block scope and to the names of
44
  static data members. When `thread_local` is applied to a variable of
45
- block scope the *storage-class-specifier* `static` is implied if it does
46
- not appear explicitly.
47
 
48
  The `static` specifier can be applied only to names of variables and
49
  functions and to anonymous unions ([[class.union]]). There can be no
50
  `static` function declarations within a block, nor any `static` function
51
  parameters. A `static` specifier used in the declaration of a variable
@@ -61,16 +61,10 @@ The `extern` specifier can be applied only to the names of variables and
61
  functions. The `extern` specifier cannot be used in the declaration of
62
  class members or function parameters. For the linkage of a name declared
63
  with an `extern` specifier, see  [[basic.link]]. The `extern` keyword
64
  can also be used in s and s, but it is not a in such contexts.
65
 
66
- A name declared in a namespace scope without a *storage-class-specifier*
67
- has external linkage unless it has internal linkage because of a
68
- previous declaration and provided it is not declared `const`. Objects
69
- declared `const` and not explicitly declared `extern` have internal
70
- linkage.
71
-
72
  The linkages implied by successive declarations for a given entity shall
73
  agree. That is, within a given scope, each declaration declaring the
74
  same variable name or the same overloading of a function name shall
75
  imply the same linkage. Each function in a given set of overloaded
76
  functions can have a different linkage, however.
 
40
 
41
  The `thread_local` specifier indicates that the named entity has thread
42
  storage duration ([[basic.stc.thread]]). It shall be applied only to
43
  the names of variables of namespace or block scope and to the names of
44
  static data members. When `thread_local` is applied to a variable of
45
+ block scope the *storage-class-specifier* `static` is implied if no
46
+ other *storage-class-specifier* appears in the *decl-specifier-seq*.
47
 
48
  The `static` specifier can be applied only to names of variables and
49
  functions and to anonymous unions ([[class.union]]). There can be no
50
  `static` function declarations within a block, nor any `static` function
51
  parameters. A `static` specifier used in the declaration of a variable
 
61
  functions. The `extern` specifier cannot be used in the declaration of
62
  class members or function parameters. For the linkage of a name declared
63
  with an `extern` specifier, see  [[basic.link]]. The `extern` keyword
64
  can also be used in s and s, but it is not a in such contexts.
65
 
 
 
 
 
 
 
66
  The linkages implied by successive declarations for a given entity shall
67
  agree. That is, within a given scope, each declaration declaring the
68
  same variable name or the same overloading of a function name shall
69
  imply the same linkage. Each function in a given set of overloaded
70
  functions can have a different linkage, however.