From Jason Turner

[basic.start.term]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmphs34t8y9/{from.md → to.md} +0 -360
tmp/tmphs34t8y9/{from.md → to.md} RENAMED
@@ -69,365 +69,5 @@ static-storage-duration objects. — *end note*]
69
 
70
  Calling the function `std::abort()` declared in `<cstdlib>` terminates
71
  the program without executing any destructors and without calling the
72
  functions passed to `std::atexit()` or `std::at_quick_exit()`.
73
 
74
- <!-- Link reference definitions -->
75
- [allocator.members]: mem.md#allocator.members
76
- [allocator.traits.members]: mem.md#allocator.traits.members
77
- [atomics]: thread.md#atomics
78
- [atomics.flag]: thread.md#atomics.flag
79
- [atomics.lockfree]: thread.md#atomics.lockfree
80
- [atomics.order]: thread.md#atomics.order
81
- [bad.alloc]: support.md#bad.alloc
82
- [basic]: #basic
83
- [basic.align]: #basic.align
84
- [basic.compound]: #basic.compound
85
- [basic.def]: #basic.def
86
- [basic.def.odr]: #basic.def.odr
87
- [basic.exec]: #basic.exec
88
- [basic.extended.fp]: #basic.extended.fp
89
- [basic.fundamental]: #basic.fundamental
90
- [basic.fundamental.width]: #basic.fundamental.width
91
- [basic.indet]: #basic.indet
92
- [basic.life]: #basic.life
93
- [basic.link]: #basic.link
94
- [basic.lookup]: #basic.lookup
95
- [basic.lookup.argdep]: #basic.lookup.argdep
96
- [basic.lookup.elab]: #basic.lookup.elab
97
- [basic.lookup.general]: #basic.lookup.general
98
- [basic.lookup.qual]: #basic.lookup.qual
99
- [basic.lookup.qual.general]: #basic.lookup.qual.general
100
- [basic.lookup.udir]: #basic.lookup.udir
101
- [basic.lookup.unqual]: #basic.lookup.unqual
102
- [basic.lval]: expr.md#basic.lval
103
- [basic.memobj]: #basic.memobj
104
- [basic.namespace]: dcl.md#basic.namespace
105
- [basic.pre]: #basic.pre
106
- [basic.scope]: #basic.scope
107
- [basic.scope.block]: #basic.scope.block
108
- [basic.scope.class]: #basic.scope.class
109
- [basic.scope.enum]: #basic.scope.enum
110
- [basic.scope.lambda]: #basic.scope.lambda
111
- [basic.scope.namespace]: #basic.scope.namespace
112
- [basic.scope.param]: #basic.scope.param
113
- [basic.scope.pdecl]: #basic.scope.pdecl
114
- [basic.scope.scope]: #basic.scope.scope
115
- [basic.scope.temp]: #basic.scope.temp
116
- [basic.start]: #basic.start
117
- [basic.start.dynamic]: #basic.start.dynamic
118
- [basic.start.main]: #basic.start.main
119
- [basic.start.static]: #basic.start.static
120
- [basic.start.term]: #basic.start.term
121
- [basic.stc]: #basic.stc
122
- [basic.stc.auto]: #basic.stc.auto
123
- [basic.stc.dynamic]: #basic.stc.dynamic
124
- [basic.stc.dynamic.allocation]: #basic.stc.dynamic.allocation
125
- [basic.stc.dynamic.deallocation]: #basic.stc.dynamic.deallocation
126
- [basic.stc.dynamic.general]: #basic.stc.dynamic.general
127
- [basic.stc.general]: #basic.stc.general
128
- [basic.stc.inherit]: #basic.stc.inherit
129
- [basic.stc.static]: #basic.stc.static
130
- [basic.stc.thread]: #basic.stc.thread
131
- [basic.type.qualifier]: #basic.type.qualifier
132
- [basic.type.qualifier.rel]: #basic.type.qualifier.rel
133
- [basic.types]: #basic.types
134
- [basic.types.general]: #basic.types.general
135
- [bit.cast]: utilities.md#bit.cast
136
- [c.malloc]: mem.md#c.malloc
137
- [class]: class.md#class
138
- [class.abstract]: class.md#class.abstract
139
- [class.access]: class.md#class.access
140
- [class.access.base]: class.md#class.access.base
141
- [class.base.init]: class.md#class.base.init
142
- [class.bit]: class.md#class.bit
143
- [class.cdtor]: class.md#class.cdtor
144
- [class.conv.fct]: class.md#class.conv.fct
145
- [class.copy.assign]: class.md#class.copy.assign
146
- [class.copy.ctor]: class.md#class.copy.ctor
147
- [class.copy.elision]: class.md#class.copy.elision
148
- [class.default.ctor]: class.md#class.default.ctor
149
- [class.derived]: class.md#class.derived
150
- [class.dtor]: class.md#class.dtor
151
- [class.free]: class.md#class.free
152
- [class.friend]: class.md#class.friend
153
- [class.mem]: class.md#class.mem
154
- [class.member.lookup]: #class.member.lookup
155
- [class.mfct]: class.md#class.mfct
156
- [class.mfct.non.static]: class.md#class.mfct.non.static
157
- [class.name]: class.md#class.name
158
- [class.pre]: class.md#class.pre
159
- [class.prop]: class.md#class.prop
160
- [class.qual]: #class.qual
161
- [class.spaceship]: class.md#class.spaceship
162
- [class.static]: class.md#class.static
163
- [class.static.data]: class.md#class.static.data
164
- [class.temporary]: #class.temporary
165
- [class.union]: class.md#class.union
166
- [class.union.anon]: class.md#class.union.anon
167
- [class.virtual]: class.md#class.virtual
168
- [conv]: expr.md#conv
169
- [conv.array]: expr.md#conv.array
170
- [conv.func]: expr.md#conv.func
171
- [conv.integral]: expr.md#conv.integral
172
- [conv.lval]: expr.md#conv.lval
173
- [conv.mem]: expr.md#conv.mem
174
- [conv.prom]: expr.md#conv.prom
175
- [conv.ptr]: expr.md#conv.ptr
176
- [conv.rank]: #conv.rank
177
- [conv.rval]: expr.md#conv.rval
178
- [cpp.predefined]: cpp.md#cpp.predefined
179
- [cstddef.syn]: support.md#cstddef.syn
180
- [cstring.syn]: strings.md#cstring.syn
181
- [dcl.align]: dcl.md#dcl.align
182
- [dcl.array]: dcl.md#dcl.array
183
- [dcl.attr]: dcl.md#dcl.attr
184
- [dcl.attr.nouniqueaddr]: dcl.md#dcl.attr.nouniqueaddr
185
- [dcl.constexpr]: dcl.md#dcl.constexpr
186
- [dcl.dcl]: dcl.md#dcl.dcl
187
- [dcl.decl]: dcl.md#dcl.decl
188
- [dcl.enum]: dcl.md#dcl.enum
189
- [dcl.fct]: dcl.md#dcl.fct
190
- [dcl.fct.def]: dcl.md#dcl.fct.def
191
- [dcl.fct.def.coroutine]: dcl.md#dcl.fct.def.coroutine
192
- [dcl.fct.def.general]: dcl.md#dcl.fct.def.general
193
- [dcl.fct.default]: dcl.md#dcl.fct.default
194
- [dcl.init]: dcl.md#dcl.init
195
- [dcl.init.aggr]: dcl.md#dcl.init.aggr
196
- [dcl.init.list]: dcl.md#dcl.init.list
197
- [dcl.init.ref]: dcl.md#dcl.init.ref
198
- [dcl.link]: dcl.md#dcl.link
199
- [dcl.meaning]: dcl.md#dcl.meaning
200
- [dcl.mptr]: dcl.md#dcl.mptr
201
- [dcl.name]: dcl.md#dcl.name
202
- [dcl.pre]: dcl.md#dcl.pre
203
- [dcl.ptr]: dcl.md#dcl.ptr
204
- [dcl.ref]: dcl.md#dcl.ref
205
- [dcl.spec]: dcl.md#dcl.spec
206
- [dcl.spec.auto]: dcl.md#dcl.spec.auto
207
- [dcl.stc]: dcl.md#dcl.stc
208
- [dcl.struct.bind]: dcl.md#dcl.struct.bind
209
- [dcl.type.decltype]: dcl.md#dcl.type.decltype
210
- [dcl.type.elab]: dcl.md#dcl.type.elab
211
- [dcl.typedef]: dcl.md#dcl.typedef
212
- [defns.block]: intro.md#defns.block
213
- [depr.local]: future.md#depr.local
214
- [depr.static.constexpr]: future.md#depr.static.constexpr
215
- [diff.cpp11.basic]: compatibility.md#diff.cpp11.basic
216
- [enum.udecl]: dcl.md#enum.udecl
217
- [except.handle]: except.md#except.handle
218
- [except.pre]: except.md#except.pre
219
- [except.spec]: except.md#except.spec
220
- [except.terminate]: except.md#except.terminate
221
- [except.throw]: except.md#except.throw
222
- [expr.add]: expr.md#expr.add
223
- [expr.alignof]: expr.md#expr.alignof
224
- [expr.arith.conv]: expr.md#expr.arith.conv
225
- [expr.ass]: expr.md#expr.ass
226
- [expr.await]: expr.md#expr.await
227
- [expr.call]: expr.md#expr.call
228
- [expr.cast]: expr.md#expr.cast
229
- [expr.comma]: expr.md#expr.comma
230
- [expr.cond]: expr.md#expr.cond
231
- [expr.const]: expr.md#expr.const
232
- [expr.const.cast]: expr.md#expr.const.cast
233
- [expr.context]: expr.md#expr.context
234
- [expr.delete]: expr.md#expr.delete
235
- [expr.dynamic.cast]: expr.md#expr.dynamic.cast
236
- [expr.eq]: expr.md#expr.eq
237
- [expr.log.and]: expr.md#expr.log.and
238
- [expr.log.or]: expr.md#expr.log.or
239
- [expr.mptr.oper]: expr.md#expr.mptr.oper
240
- [expr.new]: expr.md#expr.new
241
- [expr.pre]: expr.md#expr.pre
242
- [expr.prim.id]: expr.md#expr.prim.id
243
- [expr.prim.id.qual]: expr.md#expr.prim.id.qual
244
- [expr.prim.id.unqual]: expr.md#expr.prim.id.unqual
245
- [expr.prim.lambda]: expr.md#expr.prim.lambda
246
- [expr.prim.lambda.capture]: expr.md#expr.prim.lambda.capture
247
- [expr.prim.lambda.closure]: expr.md#expr.prim.lambda.closure
248
- [expr.prim.this]: expr.md#expr.prim.this
249
- [expr.prop]: expr.md#expr.prop
250
- [expr.ref]: expr.md#expr.ref
251
- [expr.reinterpret.cast]: expr.md#expr.reinterpret.cast
252
- [expr.rel]: expr.md#expr.rel
253
- [expr.sizeof]: expr.md#expr.sizeof
254
- [expr.static.cast]: expr.md#expr.static.cast
255
- [expr.sub]: expr.md#expr.sub
256
- [expr.type.conv]: expr.md#expr.type.conv
257
- [expr.typeid]: expr.md#expr.typeid
258
- [expr.unary.op]: expr.md#expr.unary.op
259
- [get.new.handler]: support.md#get.new.handler
260
- [headers]: library.md#headers
261
- [intro.execution]: #intro.execution
262
- [intro.memory]: #intro.memory
263
- [intro.multithread]: #intro.multithread
264
- [intro.multithread.general]: #intro.multithread.general
265
- [intro.object]: #intro.object
266
- [intro.progress]: #intro.progress
267
- [intro.races]: #intro.races
268
- [lex.charset]: lex.md#lex.charset
269
- [lex.fcon]: lex.md#lex.fcon
270
- [lex.name]: lex.md#lex.name
271
- [lex.separate]: lex.md#lex.separate
272
- [module.context]: module.md#module.context
273
- [module.global.frag]: module.md#module.global.frag
274
- [module.interface]: module.md#module.interface
275
- [module.reach]: module.md#module.reach
276
- [module.unit]: module.md#module.unit
277
- [multibyte.strings]: library.md#multibyte.strings
278
- [namespace.def]: dcl.md#namespace.def
279
- [namespace.qual]: #namespace.qual
280
- [namespace.udecl]: dcl.md#namespace.udecl
281
- [namespace.udir]: dcl.md#namespace.udir
282
- [namespace.unnamed]: dcl.md#namespace.unnamed
283
- [new.delete]: support.md#new.delete
284
- [new.delete.array]: support.md#new.delete.array
285
- [new.delete.placement]: support.md#new.delete.placement
286
- [new.delete.single]: support.md#new.delete.single
287
- [new.handler]: support.md#new.handler
288
- [new.syn]: support.md#new.syn
289
- [obj.lifetime]: mem.md#obj.lifetime
290
- [over]: over.md#over
291
- [over.literal]: over.md#over.literal
292
- [over.match]: over.md#over.match
293
- [over.match.funcs]: over.md#over.match.funcs
294
- [over.oper]: over.md#over.oper
295
- [over.over]: over.md#over.over
296
- [ptr.align]: mem.md#ptr.align
297
- [ptr.launder]: support.md#ptr.launder
298
- [replacement.functions]: library.md#replacement.functions
299
- [special]: class.md#special
300
- [std.modules]: library.md#std.modules
301
- [stdfloat.syn]: support.md#stdfloat.syn
302
- [stmt.block]: stmt.md#stmt.block
303
- [stmt.dcl]: stmt.md#stmt.dcl
304
- [stmt.expr]: stmt.md#stmt.expr
305
- [stmt.if]: stmt.md#stmt.if
306
- [stmt.iter]: stmt.md#stmt.iter
307
- [stmt.pre]: stmt.md#stmt.pre
308
- [stmt.ranged]: stmt.md#stmt.ranged
309
- [stmt.return]: stmt.md#stmt.return
310
- [stmt.select]: stmt.md#stmt.select
311
- [support.dynamic]: support.md#support.dynamic
312
- [support.runtime]: support.md#support.runtime
313
- [support.start.term]: support.md#support.start.term
314
- [support.types]: support.md#support.types
315
- [temp.concept]: temp.md#temp.concept
316
- [temp.deduct.guide]: temp.md#temp.deduct.guide
317
- [temp.dep]: temp.md#temp.dep
318
- [temp.dep.candidate]: temp.md#temp.dep.candidate
319
- [temp.dep.constexpr]: temp.md#temp.dep.constexpr
320
- [temp.dep.type]: temp.md#temp.dep.type
321
- [temp.expl.spec]: temp.md#temp.expl.spec
322
- [temp.explicit]: temp.md#temp.explicit
323
- [temp.friend]: temp.md#temp.friend
324
- [temp.local]: temp.md#temp.local
325
- [temp.names]: temp.md#temp.names
326
- [temp.over]: temp.md#temp.over
327
- [temp.over.link]: temp.md#temp.over.link
328
- [temp.param]: temp.md#temp.param
329
- [temp.point]: temp.md#temp.point
330
- [temp.pre]: temp.md#temp.pre
331
- [temp.res]: temp.md#temp.res
332
- [temp.spec]: temp.md#temp.spec
333
- [temp.spec.partial]: temp.md#temp.spec.partial
334
- [temp.type]: temp.md#temp.type
335
- [term.incomplete.type]: #term.incomplete.type
336
- [term.odr.use]: #term.odr.use
337
- [term.unevaluated.operand]: expr.md#term.unevaluated.operand
338
- [thread]: thread.md#thread
339
- [thread.jthread.class]: thread.md#thread.jthread.class
340
- [thread.thread.class]: thread.md#thread.thread.class
341
- [thread.threads]: thread.md#thread.threads
342
-
343
- [^1]: Appearing inside the brace-enclosed *declaration-seq* in a
344
- *linkage-specification* does not affect whether a declaration is a
345
- definition.
346
-
347
- [^2]: An implementation is not required to call allocation and
348
- deallocation functions from constructors or destructors; however,
349
- this is a permissible implementation technique.
350
-
351
- [^3]: An implicit object parameter [[over.match.funcs]] is not part of
352
- the parameter-type-list.
353
-
354
- [^4]: Lookups in which function names are ignored include names
355
- appearing in a *nested-name-specifier*, an
356
- *elaborated-type-specifier*, or a *base-specifier*.
357
-
358
- [^5]: Unicode® is a registered trademark of Unicode, Inc. This
359
- information is given for the convenience of users of this document
360
- and does not constitute an endorsement by ISO or IEC of this
361
- product.
362
-
363
- [^6]: The number of bits in a byte is reported by the macro `CHAR_BIT`
364
- in the header `<climits>`.
365
-
366
- [^7]: Under the “as-if” rule an implementation is allowed to store two
367
- objects at the same machine address or not store an object at all if
368
- the program cannot observe the difference [[intro.execution]].
369
-
370
- [^8]: For example, before the dynamic initialization of an object with
371
- static storage duration [[basic.start.dynamic]].
372
-
373
- [^9]: That is, an object for which a destructor will be called
374
- implicitly—upon exit from the block for an object with automatic
375
- storage duration, upon exit from the thread for an object with
376
- thread storage duration, or upon exit from the program for an object
377
- with static storage duration.
378
-
379
- [^10]: Some implementations might define that copying an invalid pointer
380
- value causes a system-generated runtime fault.
381
-
382
- [^11]: The intent is to have `operator new()` implementable by calling
383
- `std::malloc()` or `std::calloc()`, so the rules are substantially
384
- the same. C++ differs from C in requiring a zero request to return a
385
- non-null pointer.
386
-
387
- [^12]: The global `operator delete(void*, std::size_t)` precludes use of
388
- an allocation function `void operator new(std::size_t, std::size_t)`
389
- as a placement allocation function [[diff.cpp11.basic]].
390
-
391
- [^13]: The same rules apply to initialization of an `initializer_list`
392
- object [[dcl.init.list]] with its underlying temporary array.
393
-
394
- [^14]: By using, for example, the library functions [[headers]]
395
- `std::memcpy` or `std::memmove`.
396
-
397
- [^15]: By using, for example, the library functions [[headers]]
398
- `std::memcpy` or `std::memmove`.
399
-
400
- [^16]: The intent is that the memory model of C++ is compatible with
401
- that of ISO/IEC 9899 Programming Language C.
402
-
403
- [^17]: The size and layout of an instance of an incompletely-defined
404
- object type is unknown.
405
-
406
- [^18]: This is also known as two’s complement representation.
407
-
408
- [^19]: Static class members are objects or functions, and pointers to
409
- them are ordinary pointers to objects or functions.
410
-
411
- [^20]: For an object that is not within its lifetime, this is the first
412
- byte in memory that it will occupy or used to occupy.
413
-
414
- [^21]: The same representation and alignment requirements are meant to
415
- imply interchangeability as arguments to functions, return values
416
- from functions, and non-static data members of unions.
417
-
418
- [^22]: As specified in  [[class.temporary]], after a full-expression is
419
- evaluated, a sequence of zero or more invocations of destructor
420
- functions for temporary objects takes place, usually in reverse
421
- order of the construction of each temporary object.
422
-
423
- [^23]: In other words, function executions do not interleave with each
424
- other.
425
-
426
- [^24]: An object with automatic or thread storage duration [[basic.stc]]
427
- is associated with one specific thread, and can be accessed by a
428
- different thread only indirectly through a pointer or reference
429
- [[basic.compound]].
430
-
431
- [^25]: A non-block variable with static storage duration having
432
- initialization with side effects is initialized in this case, even
433
- if it is not itself odr-used [[term.odr.use]], [[basic.stc.static]].
 
69
 
70
  Calling the function `std::abort()` declared in `<cstdlib>` terminates
71
  the program without executing any destructors and without calling the
72
  functions passed to `std::atexit()` or `std::at_quick_exit()`.
73