From Jason Turner

[depr.atomics.types.operations]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp56ilcf9f/{from.md → to.md} +117 -1
tmp/tmp56ilcf9f/{from.md → to.md} RENAMED
@@ -6,11 +6,12 @@
6
 
7
  The macro expands to a token sequence suitable for constant
8
  initialization of an atomic variable of static storage duration of a
9
  type that is initialization-compatible with `value`.
10
 
11
- [*Note 1*: This operation may need to initialize locks. — *end note*]
 
12
 
13
  Concurrent access to the variable being initialized, even via an atomic
14
  operation, constitutes a data race.
15
 
16
  [*Example 1*:
@@ -19,5 +20,120 @@ operation, constitutes a data race.
19
  atomic<int> v = ATOMIC_VAR_INIT(5);
20
  ```
21
 
22
  — *end example*]
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
  The macro expands to a token sequence suitable for constant
8
  initialization of an atomic variable of static storage duration of a
9
  type that is initialization-compatible with `value`.
10
 
11
+ [*Note 1*: This operation possibly needs to initialize
12
+ locks. — *end note*]
13
 
14
  Concurrent access to the variable being initialized, even via an atomic
15
  operation, constitutes a data race.
16
 
17
  [*Example 1*:
 
20
  atomic<int> v = ATOMIC_VAR_INIT(5);
21
  ```
22
 
23
  — *end example*]
24
 
25
+ <!-- Link reference definitions -->
26
+ [atomics.order]: thread.md#atomics.order
27
+ [atomics.types.generic]: thread.md#atomics.types.generic
28
+ [atomics.types.operations]: thread.md#atomics.types.operations
29
+ [basic.link]: basic.md#basic.link
30
+ [basic.types]: basic.md#basic.types
31
+ [cerrno.syn]: diagnostics.md#cerrno.syn
32
+ [class.copy.assign]: class.md#class.copy.assign
33
+ [class.copy.ctor]: class.md#class.copy.ctor
34
+ [class.dtor]: class.md#class.dtor
35
+ [cpp17.equalitycomparable]: #cpp17.equalitycomparable
36
+ [cpp17.lessthancomparable]: #cpp17.lessthancomparable
37
+ [dcl.attr.deprecated]: dcl.md#dcl.attr.deprecated
38
+ [dcl.fct]: dcl.md#dcl.fct
39
+ [dcl.fct.def.delete]: dcl.md#dcl.fct.def.delete
40
+ [dcl.struct.bind]: dcl.md#dcl.struct.bind
41
+ [default.allocator]: mem.md#default.allocator
42
+ [depr]: #depr
43
+ [depr.arith.conv.enum]: #depr.arith.conv.enum
44
+ [depr.array.comp]: #depr.array.comp
45
+ [depr.atomics]: #depr.atomics
46
+ [depr.atomics.general]: #depr.atomics.general
47
+ [depr.atomics.nonmembers]: #depr.atomics.nonmembers
48
+ [depr.atomics.types.operations]: #depr.atomics.types.operations
49
+ [depr.atomics.volatile]: #depr.atomics.volatile
50
+ [depr.c.macros]: #depr.c.macros
51
+ [depr.capture.this]: #depr.capture.this
52
+ [depr.cerrno]: #depr.cerrno
53
+ [depr.codecvt.syn]: #depr.codecvt.syn
54
+ [depr.conversions]: #depr.conversions
55
+ [depr.conversions.buffer]: #depr.conversions.buffer
56
+ [depr.conversions.general]: #depr.conversions.general
57
+ [depr.conversions.string]: #depr.conversions.string
58
+ [depr.default.allocator]: #depr.default.allocator
59
+ [depr.fs.path.factory]: #depr.fs.path.factory
60
+ [depr.general]: #depr.general
61
+ [depr.impldec]: #depr.impldec
62
+ [depr.istrstream]: #depr.istrstream
63
+ [depr.istrstream.cons]: #depr.istrstream.cons
64
+ [depr.istrstream.general]: #depr.istrstream.general
65
+ [depr.istrstream.members]: #depr.istrstream.members
66
+ [depr.iterator]: #depr.iterator
67
+ [depr.lit]: #depr.lit
68
+ [depr.local]: #depr.local
69
+ [depr.locale.category]: #depr.locale.category
70
+ [depr.locale.stdcvt]: #depr.locale.stdcvt
71
+ [depr.locale.stdcvt.general]: #depr.locale.stdcvt.general
72
+ [depr.locale.stdcvt.req]: #depr.locale.stdcvt.req
73
+ [depr.mem.poly.allocator.mem]: #depr.mem.poly.allocator.mem
74
+ [depr.meta.types]: #depr.meta.types
75
+ [depr.move.iter.elem]: #depr.move.iter.elem
76
+ [depr.numeric.limits.has.denorm]: #depr.numeric.limits.has.denorm
77
+ [depr.ostrstream]: #depr.ostrstream
78
+ [depr.ostrstream.cons]: #depr.ostrstream.cons
79
+ [depr.ostrstream.general]: #depr.ostrstream.general
80
+ [depr.ostrstream.members]: #depr.ostrstream.members
81
+ [depr.relops]: #depr.relops
82
+ [depr.res.on.required]: #depr.res.on.required
83
+ [depr.static.constexpr]: #depr.static.constexpr
84
+ [depr.str.strstreams]: #depr.str.strstreams
85
+ [depr.string.capacity]: #depr.string.capacity
86
+ [depr.strstream]: #depr.strstream
87
+ [depr.strstream.cons]: #depr.strstream.cons
88
+ [depr.strstream.dest]: #depr.strstream.dest
89
+ [depr.strstream.general]: #depr.strstream.general
90
+ [depr.strstream.oper]: #depr.strstream.oper
91
+ [depr.strstream.syn]: #depr.strstream.syn
92
+ [depr.strstreambuf]: #depr.strstreambuf
93
+ [depr.strstreambuf.cons]: #depr.strstreambuf.cons
94
+ [depr.strstreambuf.cons.alloc]: #depr.strstreambuf.cons.alloc
95
+ [depr.strstreambuf.cons.ptr]: #depr.strstreambuf.cons.ptr
96
+ [depr.strstreambuf.cons.sz]: #depr.strstreambuf.cons.sz
97
+ [depr.strstreambuf.general]: #depr.strstreambuf.general
98
+ [depr.strstreambuf.members]: #depr.strstreambuf.members
99
+ [depr.strstreambuf.seekoff.newoff]: #depr.strstreambuf.seekoff.newoff
100
+ [depr.strstreambuf.seekoff.pos]: #depr.strstreambuf.seekoff.pos
101
+ [depr.strstreambuf.virtuals]: #depr.strstreambuf.virtuals
102
+ [depr.template.template]: #depr.template.template
103
+ [depr.tuple]: #depr.tuple
104
+ [depr.util.smartptr.shared.atomic]: #depr.util.smartptr.shared.atomic
105
+ [depr.variant]: #depr.variant
106
+ [depr.volatile.type]: #depr.volatile.type
107
+ [expr.arith.conv]: expr.md#expr.arith.conv
108
+ [expr.ass]: expr.md#expr.ass
109
+ [expr.eq]: expr.md#expr.eq
110
+ [expr.post.incr]: expr.md#expr.post.incr
111
+ [expr.pre.incr]: expr.md#expr.pre.incr
112
+ [expr.prim.lambda.capture]: expr.md#expr.prim.lambda.capture
113
+ [expr.prim.lambda.closure]: expr.md#expr.prim.lambda.closure
114
+ [expr.rel]: expr.md#expr.rel
115
+ [expr.spaceship]: expr.md#expr.spaceship
116
+ [fs.path.fmt.cvt]: input.md#fs.path.fmt.cvt
117
+ [fs.path.req]: input.md#fs.path.req
118
+ [fs.path.type.cvt]: input.md#fs.path.type.cvt
119
+ [locale.category]: localization.md#locale.category
120
+ [locale.category.facets]: localization.md#locale.category.facets
121
+ [locale.codecvt]: localization.md#locale.codecvt
122
+ [locale.spec]: localization.md#locale.spec
123
+ [mem.poly.allocator.mem]: mem.md#mem.poly.allocator.mem
124
+ [meta.rqmts]: meta.md#meta.rqmts
125
+ [move.iter.elem]: iterators.md#move.iter.elem
126
+ [numeric.limits.general]: support.md#numeric.limits.general
127
+ [numeric.special]: support.md#numeric.special
128
+ [over.literal]: over.md#over.literal
129
+ [string.capacity]: strings.md#string.capacity
130
+ [structure.specifications]: library.md#structure.specifications
131
+ [system.error.syn]: diagnostics.md#system.error.syn
132
+ [temp.names]: temp.md#temp.names
133
+ [term.unevaluated.operand]: expr.md#term.unevaluated.operand
134
+
135
+ [^1]: The function signature `strlen(const char*)` is declared in
136
+ `<cstring>`. The macro `INT_MAX` is defined in `<climits>`.
137
+
138
+ [^2]: The function signature `strlen(const char*)` is declared in
139
+ `<cstring>`.