From Jason Turner

[lib.types.movedfrom]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpym_0p6h5/{from.md → to.md} +52 -16
tmp/tmpym_0p6h5/{from.md → to.md} RENAMED
@@ -1,56 +1,65 @@
1
  #### Moved-from state of library types <a id="lib.types.movedfrom">[[lib.types.movedfrom]]</a>
2
 
3
  Objects of types defined in the C++ standard library may be moved from
4
  [[class.copy.ctor]]. Move operations may be explicitly specified or
5
  implicitly generated. Unless otherwise specified, such moved-from
6
- objects shall be placed in a valid but unspecified state.
 
7
 
8
  An object of a type defined in the C++ standard library may be
9
  move-assigned [[class.copy.assign]] to itself. Unless otherwise
10
  specified, such an assignment places the object in a valid but
11
  unspecified state.
12
 
13
  <!-- Link reference definitions -->
14
  [alg.c.library]: algorithms.md#alg.c.library
 
15
  [alg.sorting]: algorithms.md#alg.sorting
16
  [algorithm.stable]: #algorithm.stable
17
  [algorithms]: algorithms.md#algorithms
18
  [algorithms.requirements]: algorithms.md#algorithms.requirements
19
  [alloc.errors]: support.md#alloc.errors
20
  [allocator.requirements]: #allocator.requirements
21
  [allocator.requirements.completeness]: #allocator.requirements.completeness
22
  [allocator.requirements.general]: #allocator.requirements.general
23
  [allocator.traits]: mem.md#allocator.traits
24
  [alt.headers]: #alt.headers
 
25
  [array.creation]: containers.md#array.creation
26
  [atomics]: thread.md#atomics
27
  [bad.alloc]: support.md#bad.alloc
 
 
28
  [basic.def.odr]: basic.md#basic.def.odr
29
  [basic.fundamental]: basic.md#basic.fundamental
 
30
  [basic.life]: basic.md#basic.life
31
  [basic.link]: basic.md#basic.link
32
  [basic.lookup.argdep]: basic.md#basic.lookup.argdep
33
  [basic.lookup.qual]: basic.md#basic.lookup.qual
34
  [basic.lookup.unqual]: basic.md#basic.lookup.unqual
35
  [basic.scope.namespace]: basic.md#basic.scope.namespace
36
- [basic.start]: basic.md#basic.start
37
  [basic.stc.dynamic]: basic.md#basic.stc.dynamic
38
  [bit]: utilities.md#bit
39
  [bitmask.types]: #bitmask.types
40
  [byte.strings]: #byte.strings
41
  [c.annex.k.names]: #c.annex.k.names
 
 
42
  [cassert.syn]: diagnostics.md#cassert.syn
43
  [cerrno.syn]: diagnostics.md#cerrno.syn
44
  [character.seq]: #character.seq
45
  [character.seq.general]: #character.seq.general
 
46
  [class.copy.assign]: class.md#class.copy.assign
47
  [class.copy.ctor]: class.md#class.copy.ctor
48
  [class.dtor]: class.md#class.dtor
49
  [class.mem]: class.md#class.mem
 
50
  [class.virtual]: class.md#class.virtual
51
- [clocale.syn]: localization.md#clocale.syn
52
  [cmp]: support.md#cmp
53
  [compliance]: #compliance
54
  [concept.destructible]: concepts.md#concept.destructible
55
  [concept.invocable]: concepts.md#concept.invocable
56
  [concept.totallyordered]: concepts.md#concept.totallyordered
@@ -68,40 +77,51 @@ unspecified state.
68
  [conv]: expr.md#conv
69
  [conv.func]: expr.md#conv.func
70
  [conventions]: #conventions
71
  [conventions.general]: #conventions.general
72
  [cpp.include]: cpp.md#cpp.include
73
- [cpp.replace]: cpp.md#cpp.replace
74
  [cpp17.copyassignable]: #cpp17.copyassignable
75
  [cpp17.copyconstructible]: #cpp17.copyconstructible
76
  [cpp17.destructible]: #cpp17.destructible
77
  [cpp17.hash]: #cpp17.hash
78
  [cpp17.moveassignable]: #cpp17.moveassignable
79
  [cpp17.nullablepointer]: #cpp17.nullablepointer
80
  [cstdarg.syn]: support.md#cstdarg.syn
81
  [cstddef.syn]: support.md#cstddef.syn
82
  [cstdint.syn]: support.md#cstdint.syn
 
83
  [customization.point.object]: #customization.point.object
84
  [dcl.array]: dcl.md#dcl.array
85
- [dcl.attr]: dcl.md#dcl.attr
86
  [dcl.constexpr]: dcl.md#dcl.constexpr
 
 
87
  [dcl.fct.default]: dcl.md#dcl.fct.default
88
  [dcl.init]: dcl.md#dcl.init
89
  [dcl.inline]: dcl.md#dcl.inline
90
  [dcl.link]: dcl.md#dcl.link
91
  [dcl.pre]: dcl.md#dcl.pre
92
  [dcl.typedef]: dcl.md#dcl.typedef
 
 
93
  [defns.nonconst.libcall]: intro.md#defns.nonconst.libcall
 
94
  [depr]: future.md#depr
95
  [derivation]: #derivation
96
  [derived.classes]: #derived.classes
97
  [description]: #description
98
  [description.general]: #description.general
99
  [diagnostics]: diagnostics.md#diagnostics
100
  [enumerated.types]: #enumerated.types
 
101
  [except]: except.md#except
 
 
 
 
 
102
  [expos.only.entity]: #expos.only.entity
 
103
  [expr.delete]: expr.md#expr.delete
104
  [expr.new]: expr.md#expr.new
105
  [expr.unary.op]: expr.md#expr.unary.op
106
  [extern.names]: #extern.names
107
  [extern.types]: #extern.types
@@ -114,28 +134,29 @@ unspecified state.
114
  [headers]: #headers
115
  [headers.cpp]: #headers.cpp
116
  [headers.cpp.c]: #headers.cpp.c
117
  [headers.cpp.fs]: #headers.cpp.fs
118
  [hidden.friends]: #hidden.friends
 
119
  [input.output]: input.md#input.output
120
  [intro.compliance]: intro.md#intro.compliance
121
  [intro.multithread]: basic.md#intro.multithread
 
122
  [intro.refs]: intro.md#intro.refs
123
  [iterator.requirements]: iterators.md#iterator.requirements
124
  [iterators]: iterators.md#iterators
125
  [lex.charset]: lex.md#lex.charset
126
  [lex.name]: lex.md#lex.name
127
- [lex.name.special]: #lex.name.special
128
  [lex.phases]: lex.md#lex.phases
129
  [lex.separate]: lex.md#lex.separate
130
  [lib.types.movedfrom]: #lib.types.movedfrom
131
  [library]: #library
132
  [library.c]: #library.c
133
  [library.categories]: #library.categories
 
134
  [library.general]: #library.general
135
- [locales]: localization.md#locales
136
- [localization]: localization.md#localization
137
  [macro.names]: #macro.names
138
  [mem]: mem.md#mem
139
  [member.functions]: #member.functions
140
  [memory]: mem.md#memory
141
  [meta]: meta.md#meta
@@ -145,32 +166,34 @@ unspecified state.
145
  [namespace.def]: dcl.md#namespace.def
146
  [namespace.future]: #namespace.future
147
  [namespace.posix]: #namespace.posix
148
  [namespace.std]: #namespace.std
149
  [namespace.udecl]: dcl.md#namespace.udecl
150
- [new.delete]: support.md#new.delete
151
  [new.handler]: support.md#new.handler
152
- [new.syn]: support.md#new.syn
153
  [nullablepointer.requirements]: #nullablepointer.requirements
154
  [numeric.requirements]: numerics.md#numeric.requirements
155
  [numerics]: numerics.md#numerics
 
156
  [objects.within.classes]: #objects.within.classes
 
157
  [organization]: #organization
158
  [organization.general]: #organization.general
159
  [ostream.iterator.ops]: iterators.md#ostream.iterator.ops
160
  [over.literal]: over.md#over.literal
161
  [over.match]: over.md#over.match
162
  [over.match.oper]: over.md#over.match.oper
163
  [protection.within.classes]: #protection.within.classes
 
164
  [random.access.iterators]: iterators.md#random.access.iterators
165
  [ranges]: ranges.md#ranges
166
  [ratio]: meta.md#ratio
167
- [re]: re.md#re
168
  [reentrancy]: #reentrancy
169
  [replacement.functions]: #replacement.functions
170
  [requirements]: #requirements
171
  [requirements.general]: #requirements.general
 
172
  [res.on.arguments]: #res.on.arguments
173
  [res.on.data.races]: #res.on.data.races
174
  [res.on.exception.handling]: #res.on.exception.handling
175
  [res.on.functions]: #res.on.functions
176
  [res.on.headers]: #res.on.headers
@@ -180,31 +203,34 @@ unspecified state.
180
  [reserved.names]: #reserved.names
181
  [reserved.names.general]: #reserved.names.general
182
  [specialized.addressof]: mem.md#specialized.addressof
183
  [std.exceptions]: diagnostics.md#std.exceptions
184
  [std.modules]: #std.modules
 
185
  [stmt.return]: stmt.md#stmt.return
186
  [stream.types]: input.md#stream.types
 
 
187
  [strings]: strings.md#strings
188
  [structure]: #structure
189
  [structure.elements]: #structure.elements
190
  [structure.requirements]: #structure.requirements
191
  [structure.see.also]: #structure.see.also
192
  [structure.specifications]: #structure.specifications
193
  [structure.summary]: #structure.summary
194
  [support]: support.md#support
195
  [support.c.headers]: support.md#support.c.headers
196
  [support.c.headers.other]: support.md#support.c.headers.other
 
197
  [support.coroutine]: support.md#support.coroutine
198
  [support.dynamic]: support.md#support.dynamic
199
  [support.exception]: support.md#support.exception
200
  [support.initlist]: support.md#support.initlist
201
  [support.limits]: support.md#support.limits
202
  [support.rtti]: support.md#support.rtti
203
  [support.runtime]: support.md#support.runtime
204
  [support.srcloc]: support.md#support.srcloc
205
- [support.start.term]: support.md#support.start.term
206
  [support.types]: support.md#support.types
207
  [swappable.requirements]: #swappable.requirements
208
  [syserr]: diagnostics.md#syserr
209
  [syserr.errcode.overview]: diagnostics.md#syserr.errcode.overview
210
  [tab:cpp17.destructible]: #tab:cpp17.destructible
@@ -214,11 +240,13 @@ unspecified state.
214
  [temp.constr.decl]: temp.md#temp.constr.decl
215
  [temp.deduct.call]: temp.md#temp.deduct.call
216
  [template.bitset]: utilities.md#template.bitset
217
  [term.incomplete.type]: basic.md#term.incomplete.type
218
  [term.object.type]: basic.md#term.object.type
 
219
  [terminate.handler]: support.md#terminate.handler
 
220
  [thread]: thread.md#thread
221
  [time]: time.md#time
222
  [tuple]: utilities.md#tuple
223
  [type.descriptions]: #type.descriptions
224
  [type.descriptions.general]: #type.descriptions.general
@@ -232,13 +260,20 @@ unspecified state.
232
  [utility]: utilities.md#utility
233
  [utility.arg.requirements]: #utility.arg.requirements
234
  [utility.requirements]: #utility.requirements
235
  [utility.requirements.general]: #utility.requirements.general
236
  [value.error.codes]: #value.error.codes
 
 
 
237
  [zombie.names]: #zombie.names
 
 
 
 
238
 
239
- [^1]: See also ISO/IEC 9899:2018 section 7.6.
240
 
241
  [^2]: To save space, items that do not apply to a Clause are omitted.
242
  For example, if a Clause does not specify any requirements, there
243
  will be no “Requirements” subclause.
244
 
@@ -307,11 +342,12 @@ unspecified state.
307
 
308
  [^19]: This is the same as the C standard library.
309
 
310
  [^20]: The only reliable way to declare an object or function signature
311
  from the C standard library is by including the header that declares
312
- it, notwithstanding the latitude granted in 7.1.4 of the C Standard.
 
313
 
314
  [^21]: Any library code that instantiates other library templates must
315
  be prepared to work adequately with any user-supplied specialization
316
  that meets the minimum requirements of this document.
317
 
@@ -330,12 +366,12 @@ unspecified state.
330
 
331
  [^25]: A valid C++ program always calls the expected library non-member
332
  function. An implementation can also define additional non-member
333
  functions that would otherwise not be called by a valid C++ program.
334
 
335
- [^26]: That is, the C library functions can all be treated as if they
336
- are marked `noexcept`. This allows implementations to make
337
  performance optimizations based on the absence of exceptions at
338
  runtime.
339
 
340
  [^27]: The functions `qsort()` and `bsearch()` [[alg.c.library]] meet
341
  this condition.
 
1
  #### Moved-from state of library types <a id="lib.types.movedfrom">[[lib.types.movedfrom]]</a>
2
 
3
  Objects of types defined in the C++ standard library may be moved from
4
  [[class.copy.ctor]]. Move operations may be explicitly specified or
5
  implicitly generated. Unless otherwise specified, such moved-from
6
+ objects shall be placed in a valid but unspecified state
7
+ [[defns.valid]].
8
 
9
  An object of a type defined in the C++ standard library may be
10
  move-assigned [[class.copy.assign]] to itself. Unless otherwise
11
  specified, such an assignment places the object in a valid but
12
  unspecified state.
13
 
14
  <!-- Link reference definitions -->
15
  [alg.c.library]: algorithms.md#alg.c.library
16
+ [alg.func.obj]: #alg.func.obj
17
  [alg.sorting]: algorithms.md#alg.sorting
18
  [algorithm.stable]: #algorithm.stable
19
  [algorithms]: algorithms.md#algorithms
20
  [algorithms.requirements]: algorithms.md#algorithms.requirements
21
  [alloc.errors]: support.md#alloc.errors
22
  [allocator.requirements]: #allocator.requirements
23
  [allocator.requirements.completeness]: #allocator.requirements.completeness
24
  [allocator.requirements.general]: #allocator.requirements.general
25
  [allocator.traits]: mem.md#allocator.traits
26
  [alt.headers]: #alt.headers
27
+ [array]: containers.md#array
28
  [array.creation]: containers.md#array.creation
29
  [atomics]: thread.md#atomics
30
  [bad.alloc]: support.md#bad.alloc
31
+ [basic.contract]: basic.md#basic.contract
32
+ [basic.contract.eval]: basic.md#basic.contract.eval
33
  [basic.def.odr]: basic.md#basic.def.odr
34
  [basic.fundamental]: basic.md#basic.fundamental
35
+ [basic.indet]: basic.md#basic.indet
36
  [basic.life]: basic.md#basic.life
37
  [basic.link]: basic.md#basic.link
38
  [basic.lookup.argdep]: basic.md#basic.lookup.argdep
39
  [basic.lookup.qual]: basic.md#basic.lookup.qual
40
  [basic.lookup.unqual]: basic.md#basic.lookup.unqual
41
  [basic.scope.namespace]: basic.md#basic.scope.namespace
 
42
  [basic.stc.dynamic]: basic.md#basic.stc.dynamic
43
  [bit]: utilities.md#bit
44
  [bitmask.types]: #bitmask.types
45
  [byte.strings]: #byte.strings
46
  [c.annex.k.names]: #c.annex.k.names
47
+ [c.math]: numerics.md#c.math
48
+ [c.strings]: strings.md#c.strings
49
  [cassert.syn]: diagnostics.md#cassert.syn
50
  [cerrno.syn]: diagnostics.md#cerrno.syn
51
  [character.seq]: #character.seq
52
  [character.seq.general]: #character.seq.general
53
+ [charconv]: text.md#charconv
54
  [class.copy.assign]: class.md#class.copy.assign
55
  [class.copy.ctor]: class.md#class.copy.ctor
56
  [class.dtor]: class.md#class.dtor
57
  [class.mem]: class.md#class.mem
58
+ [class.prop]: class.md#class.prop
59
  [class.virtual]: class.md#class.virtual
60
+ [clocale.syn]: text.md#clocale.syn
61
  [cmp]: support.md#cmp
62
  [compliance]: #compliance
63
  [concept.destructible]: concepts.md#concept.destructible
64
  [concept.invocable]: concepts.md#concept.invocable
65
  [concept.totallyordered]: concepts.md#concept.totallyordered
 
77
  [conv]: expr.md#conv
78
  [conv.func]: expr.md#conv.func
79
  [conventions]: #conventions
80
  [conventions.general]: #conventions.general
81
  [cpp.include]: cpp.md#cpp.include
 
82
  [cpp17.copyassignable]: #cpp17.copyassignable
83
  [cpp17.copyconstructible]: #cpp17.copyconstructible
84
  [cpp17.destructible]: #cpp17.destructible
85
  [cpp17.hash]: #cpp17.hash
86
  [cpp17.moveassignable]: #cpp17.moveassignable
87
  [cpp17.nullablepointer]: #cpp17.nullablepointer
88
  [cstdarg.syn]: support.md#cstdarg.syn
89
  [cstddef.syn]: support.md#cstddef.syn
90
  [cstdint.syn]: support.md#cstdint.syn
91
+ [cstdlib.syn]: support.md#cstdlib.syn
92
  [customization.point.object]: #customization.point.object
93
  [dcl.array]: dcl.md#dcl.array
 
94
  [dcl.constexpr]: dcl.md#dcl.constexpr
95
+ [dcl.contract.func]: dcl.md#dcl.contract.func
96
+ [dcl.fct.def.delete]: dcl.md#dcl.fct.def.delete
97
  [dcl.fct.default]: dcl.md#dcl.fct.default
98
  [dcl.init]: dcl.md#dcl.init
99
  [dcl.inline]: dcl.md#dcl.inline
100
  [dcl.link]: dcl.md#dcl.link
101
  [dcl.pre]: dcl.md#dcl.pre
102
  [dcl.typedef]: dcl.md#dcl.typedef
103
+ [debugging]: diagnostics.md#debugging
104
+ [defns.const.subexpr]: intro.md#defns.const.subexpr
105
  [defns.nonconst.libcall]: intro.md#defns.nonconst.libcall
106
+ [defns.valid]: intro.md#defns.valid
107
  [depr]: future.md#depr
108
  [derivation]: #derivation
109
  [derived.classes]: #derived.classes
110
  [description]: #description
111
  [description.general]: #description.general
112
  [diagnostics]: diagnostics.md#diagnostics
113
  [enumerated.types]: #enumerated.types
114
+ [errno]: diagnostics.md#errno
115
  [except]: except.md#except
116
+ [except.handle]: except.md#except.handle
117
+ [except.spec]: except.md#except.spec
118
+ [exec]: exec.md#exec
119
+ [execpol]: algorithms.md#execpol
120
+ [expected]: utilities.md#expected
121
  [expos.only.entity]: #expos.only.entity
122
+ [expr.call]: expr.md#expr.call
123
  [expr.delete]: expr.md#expr.delete
124
  [expr.new]: expr.md#expr.new
125
  [expr.unary.op]: expr.md#expr.unary.op
126
  [extern.names]: #extern.names
127
  [extern.types]: #extern.types
 
134
  [headers]: #headers
135
  [headers.cpp]: #headers.cpp
136
  [headers.cpp.c]: #headers.cpp.c
137
  [headers.cpp.fs]: #headers.cpp.fs
138
  [hidden.friends]: #hidden.friends
139
+ [inplace.vector]: containers.md#inplace.vector
140
  [input.output]: input.md#input.output
141
  [intro.compliance]: intro.md#intro.compliance
142
  [intro.multithread]: basic.md#intro.multithread
143
+ [intro.races]: basic.md#intro.races
144
  [intro.refs]: intro.md#intro.refs
145
  [iterator.requirements]: iterators.md#iterator.requirements
146
  [iterators]: iterators.md#iterators
147
  [lex.charset]: lex.md#lex.charset
148
  [lex.name]: lex.md#lex.name
 
149
  [lex.phases]: lex.md#lex.phases
150
  [lex.separate]: lex.md#lex.separate
151
  [lib.types.movedfrom]: #lib.types.movedfrom
152
  [library]: #library
153
  [library.c]: #library.c
154
  [library.categories]: #library.categories
155
+ [library.class.props]: #library.class.props
156
  [library.general]: #library.general
157
+ [locales]: text.md#locales
 
158
  [macro.names]: #macro.names
159
  [mem]: mem.md#mem
160
  [member.functions]: #member.functions
161
  [memory]: mem.md#memory
162
  [meta]: meta.md#meta
 
166
  [namespace.def]: dcl.md#namespace.def
167
  [namespace.future]: #namespace.future
168
  [namespace.posix]: #namespace.posix
169
  [namespace.std]: #namespace.std
170
  [namespace.udecl]: dcl.md#namespace.udecl
 
171
  [new.handler]: support.md#new.handler
 
172
  [nullablepointer.requirements]: #nullablepointer.requirements
173
  [numeric.requirements]: numerics.md#numeric.requirements
174
  [numerics]: numerics.md#numerics
175
+ [obj.lifetime]: mem.md#obj.lifetime
176
  [objects.within.classes]: #objects.within.classes
177
+ [optional]: utilities.md#optional
178
  [organization]: #organization
179
  [organization.general]: #organization.general
180
  [ostream.iterator.ops]: iterators.md#ostream.iterator.ops
181
  [over.literal]: over.md#over.literal
182
  [over.match]: over.md#over.match
183
  [over.match.oper]: over.md#over.match.oper
184
  [protection.within.classes]: #protection.within.classes
185
+ [rand]: numerics.md#rand
186
  [random.access.iterators]: iterators.md#random.access.iterators
187
  [ranges]: ranges.md#ranges
188
  [ratio]: meta.md#ratio
189
+ [re]: text.md#re
190
  [reentrancy]: #reentrancy
191
  [replacement.functions]: #replacement.functions
192
  [requirements]: #requirements
193
  [requirements.general]: #requirements.general
194
+ [res.contract.assertions]: #res.contract.assertions
195
  [res.on.arguments]: #res.on.arguments
196
  [res.on.data.races]: #res.on.data.races
197
  [res.on.exception.handling]: #res.on.exception.handling
198
  [res.on.functions]: #res.on.functions
199
  [res.on.headers]: #res.on.headers
 
203
  [reserved.names]: #reserved.names
204
  [reserved.names.general]: #reserved.names.general
205
  [specialized.addressof]: mem.md#specialized.addressof
206
  [std.exceptions]: diagnostics.md#std.exceptions
207
  [std.modules]: #std.modules
208
+ [stdbit.h.syn]: utilities.md#stdbit.h.syn
209
  [stmt.return]: stmt.md#stmt.return
210
  [stream.types]: input.md#stream.types
211
+ [string.classes]: strings.md#string.classes
212
+ [string.view]: strings.md#string.view
213
  [strings]: strings.md#strings
214
  [structure]: #structure
215
  [structure.elements]: #structure.elements
216
  [structure.requirements]: #structure.requirements
217
  [structure.see.also]: #structure.see.also
218
  [structure.specifications]: #structure.specifications
219
  [structure.summary]: #structure.summary
220
  [support]: support.md#support
221
  [support.c.headers]: support.md#support.c.headers
222
  [support.c.headers.other]: support.md#support.c.headers.other
223
+ [support.contract]: support.md#support.contract
224
  [support.coroutine]: support.md#support.coroutine
225
  [support.dynamic]: support.md#support.dynamic
226
  [support.exception]: support.md#support.exception
227
  [support.initlist]: support.md#support.initlist
228
  [support.limits]: support.md#support.limits
229
  [support.rtti]: support.md#support.rtti
230
  [support.runtime]: support.md#support.runtime
231
  [support.srcloc]: support.md#support.srcloc
 
232
  [support.types]: support.md#support.types
233
  [swappable.requirements]: #swappable.requirements
234
  [syserr]: diagnostics.md#syserr
235
  [syserr.errcode.overview]: diagnostics.md#syserr.errcode.overview
236
  [tab:cpp17.destructible]: #tab:cpp17.destructible
 
240
  [temp.constr.decl]: temp.md#temp.constr.decl
241
  [temp.deduct.call]: temp.md#temp.deduct.call
242
  [template.bitset]: utilities.md#template.bitset
243
  [term.incomplete.type]: basic.md#term.incomplete.type
244
  [term.object.type]: basic.md#term.object.type
245
+ [term.replaceable.function]: dcl.md#term.replaceable.function
246
  [terminate.handler]: support.md#terminate.handler
247
+ [text]: text.md#text
248
  [thread]: thread.md#thread
249
  [time]: time.md#time
250
  [tuple]: utilities.md#tuple
251
  [type.descriptions]: #type.descriptions
252
  [type.descriptions.general]: #type.descriptions.general
 
260
  [utility]: utilities.md#utility
261
  [utility.arg.requirements]: #utility.arg.requirements
262
  [utility.requirements]: #utility.requirements
263
  [utility.requirements.general]: #utility.requirements.general
264
  [value.error.codes]: #value.error.codes
265
+ [variant]: utilities.md#variant
266
+ [views.contiguous]: containers.md#views.contiguous
267
+ [views.multidim]: containers.md#views.multidim
268
  [zombie.names]: #zombie.names
269
+ [zombie.names.fnmacro]: #zombie.names.fnmacro
270
+ [zombie.names.header]: #zombie.names.header
271
+ [zombie.names.objmacro]: #zombie.names.objmacro
272
+ [zombie.names.std]: #zombie.names.std
273
 
274
+ [^1]: See also ISO/IEC 9899:2018 (C), 7.6.
275
 
276
  [^2]: To save space, items that do not apply to a Clause are omitted.
277
  For example, if a Clause does not specify any requirements, there
278
  will be no “Requirements” subclause.
279
 
 
342
 
343
  [^19]: This is the same as the C standard library.
344
 
345
  [^20]: The only reliable way to declare an object or function signature
346
  from the C standard library is by including the header that declares
347
+ it, notwithstanding the latitude granted in ISO/IEC 9899:2018 (C),
348
+ 7.1.4.
349
 
350
  [^21]: Any library code that instantiates other library templates must
351
  be prepared to work adequately with any user-supplied specialization
352
  that meets the minimum requirements of this document.
353
 
 
366
 
367
  [^25]: A valid C++ program always calls the expected library non-member
368
  function. An implementation can also define additional non-member
369
  functions that would otherwise not be called by a valid C++ program.
370
 
371
+ [^26]: That is, the C standard library functions can all be treated as
372
+ if they are marked `noexcept`. This allows implementations to make
373
  performance optimizations based on the absence of exceptions at
374
  runtime.
375
 
376
  [^27]: The functions `qsort()` and `bsearch()` [[alg.c.library]] meet
377
  this condition.