From Jason Turner

[stacktrace]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpoe7y2bgd/{from.md → to.md} +26 -108
tmp/tmpoe7y2bgd/{from.md → to.md} RENAMED
@@ -227,11 +227,11 @@ namespace std {
227
  const_iterator cbegin() const noexcept;
228
  const_iterator cend() const noexcept;
229
  const_reverse_iterator crbegin() const noexcept;
230
  const_reverse_iterator crend() const noexcept;
231
 
232
- [[nodiscard]] bool empty() const noexcept;
233
  size_type size() const noexcept;
234
  size_type max_size() const noexcept;
235
 
236
  const_reference operator[](size_type) const;
237
  const_reference at(size_type) const;
@@ -269,48 +269,49 @@ container [[container.alloc.reqmts]], and of a sequence container
269
 
270
  ``` cpp
271
  static basic_stacktrace current(const allocator_type& alloc = allocator_type()) noexcept;
272
  ```
273
 
274
- *Returns:* A `basic_stacktrace` object with `frames_` storing the
275
  stacktrace of the current evaluation in the current thread of execution,
276
- or an empty `basic_stacktrace` object if the initialization of `frames_`
277
- failed. `alloc` is passed to the constructor of the `frames_` object.
 
278
 
279
  [*Note 1*: If the stacktrace was successfully obtained, then
280
- `frames_.front()` is the `stacktrace_entry` representing approximately
281
- the current evaluation, and `frames_.back()` is the `stacktrace_entry`
282
- representing approximately the initial function of the current thread of
283
- execution. — *end note*]
284
 
285
  ``` cpp
286
  static basic_stacktrace current(size_type skip,
287
  const allocator_type& alloc = allocator_type()) noexcept;
288
  ```
289
 
290
  Let `t` be a stacktrace as-if obtained via
291
  `basic_stacktrace::current(alloc)`. Let `n` be `t.size()`.
292
 
293
- *Returns:* A `basic_stacktrace` object where `frames_` is
294
  direct-non-list-initialized from arguments `t.begin() + min(n, skip)`,
295
  `t.end()`, and `alloc`, or an empty `basic_stacktrace` object if the
296
- initialization of `frames_` failed.
297
 
298
  ``` cpp
299
  static basic_stacktrace current(size_type skip, size_type max_depth,
300
  const allocator_type& alloc = allocator_type()) noexcept;
301
  ```
302
 
303
  Let `t` be a stacktrace as-if obtained via
304
  `basic_stacktrace::current(alloc)`. Let `n` be `t.size()`.
305
 
306
- *Preconditions:* `skip <= skip + max_depth` is `true`.
307
 
308
- *Returns:* A `basic_stacktrace` object where `frames_` is
309
  direct-non-list-initialized from arguments `t.begin() + min(n, skip)`,
310
  `t.begin() + min(n, skip + max_depth)`, and `alloc`, or an empty
311
- `basic_stacktrace` object if the initialization of `frames_` failed.
312
 
313
  ``` cpp
314
  basic_stacktrace() noexcept(is_nothrow_default_constructible_v<allocator_type>);
315
  ```
316
 
@@ -318,11 +319,11 @@ basic_stacktrace() noexcept(is_nothrow_default_constructible_v<allocator_type>);
318
 
319
  ``` cpp
320
  explicit basic_stacktrace(const allocator_type& alloc) noexcept;
321
  ```
322
 
323
- *Effects:* `alloc` is passed to the `frames_` constructor.
324
 
325
  *Ensures:* `empty()` is `true`.
326
 
327
  ``` cpp
328
  basic_stacktrace(const basic_stacktrace& other);
@@ -350,18 +351,18 @@ The type models `random_access_iterator`
350
 
351
  ``` cpp
352
  allocator_type get_allocator() const noexcept;
353
  ```
354
 
355
- *Returns:* `frames_.get_allocator()`.
356
 
357
  ``` cpp
358
  const_iterator begin() const noexcept;
359
  const_iterator cbegin() const noexcept;
360
  ```
361
 
362
- *Returns:* An iterator referring to the first element in `frames_`. If
363
  `empty()` is `true`, then it returns the same value as `end()`.
364
 
365
  ``` cpp
366
  const_iterator end() const noexcept;
367
  const_iterator cend() const noexcept;
@@ -382,42 +383,42 @@ const_reverse_iterator crend() const noexcept;
382
  ```
383
 
384
  *Returns:* `reverse_iterator(cbegin())`.
385
 
386
  ``` cpp
387
- [[nodiscard]] bool empty() const noexcept;
388
  ```
389
 
390
- *Returns:* `frames_.empty()`.
391
 
392
  ``` cpp
393
  size_type size() const noexcept;
394
  ```
395
 
396
- *Returns:* `frames_.size()`.
397
 
398
  ``` cpp
399
  size_type max_size() const noexcept;
400
  ```
401
 
402
- *Returns:* `frames_.max_size()`.
403
 
404
  ``` cpp
405
  const_reference operator[](size_type frame_no) const;
406
  ```
407
 
408
- *Preconditions:* `frame_no < size()` is `true`.
409
 
410
- *Returns:* `frames_[frame_no]`.
411
 
412
  *Throws:* Nothing.
413
 
414
  ``` cpp
415
  const_reference at(size_type frame_no) const;
416
  ```
417
 
418
- *Returns:* `frames_[frame_no]`.
419
 
420
  *Throws:* `out_of_range` if `frame_no >= size()`.
421
 
422
  #### Comparisons <a id="stacktrace.basic.cmp">[[stacktrace.basic.cmp]]</a>
423
 
@@ -489,11 +490,11 @@ template<class Allocator>
489
  ostream& operator<<(ostream& os, const basic_stacktrace<Allocator>& st);
490
  ```
491
 
492
  *Effects:* Equivalent to: `return os << to_string(st);`
493
 
494
- #### Formatting support <a id="stacktrace.format">[[stacktrace.format]]</a>
495
 
496
  ``` cpp
497
  template<> struct formatter<stacktrace_entry>;
498
  ```
499
 
@@ -521,97 +522,14 @@ template<class Allocator> struct formatter<basic_stacktrace<Allocator>>;
521
  For `formatter<basic_stacktrace<Allocator>>`, *format-spec* is empty.
522
 
523
  A `basic_stacktrace<Allocator>` object `s` is formatted as if by copying
524
  `to_string(s)` through the output iterator of the context.
525
 
526
- #### Hash support <a id="stacktrace.basic.hash">[[stacktrace.basic.hash]]</a>
527
 
528
  ``` cpp
529
  template<> struct hash<stacktrace_entry>;
530
  template<class Allocator> struct hash<basic_stacktrace<Allocator>>;
531
  ```
532
 
533
  The specializations are enabled [[unord.hash]].
534
 
535
- <!-- Link reference definitions -->
536
- [assertions]: #assertions
537
- [assertions.assert]: #assertions.assert
538
- [assertions.general]: #assertions.general
539
- [bad.alloc]: support.md#bad.alloc
540
- [cassert.syn]: #cassert.syn
541
- [cerrno.syn]: #cerrno.syn
542
- [cmp.concept]: support.md#cmp.concept
543
- [comparisons.three.way]: utilities.md#comparisons.three.way
544
- [concepts.object]: concepts.md#concepts.object
545
- [container.alloc.reqmts]: containers.md#container.alloc.reqmts
546
- [container.rev.reqmts]: containers.md#container.rev.reqmts
547
- [conv]: expr.md#conv
548
- [cpp.predefined]: cpp.md#cpp.predefined
549
- [defns.const.subexpr]: intro.md#defns.const.subexpr
550
- [diagnostics]: #diagnostics
551
- [diagnostics.general]: #diagnostics.general
552
- [diagnostics.summary]: #diagnostics.summary
553
- [domain.error]: #domain.error
554
- [errno]: #errno
555
- [errno.general]: #errno.general
556
- [format.string.std]: utilities.md#format.string.std
557
- [intro.execution]: basic.md#intro.execution
558
- [invalid.argument]: #invalid.argument
559
- [iterator.concept.random.access]: iterators.md#iterator.concept.random.access
560
- [length.error]: #length.error
561
- [logic.error]: #logic.error
562
- [out.of.range]: #out.of.range
563
- [overflow.error]: #overflow.error
564
- [random.access.iterators]: iterators.md#random.access.iterators
565
- [range.error]: #range.error
566
- [res.on.exception.handling]: library.md#res.on.exception.handling
567
- [runtime.error]: #runtime.error
568
- [sequence.reqmts]: containers.md#sequence.reqmts
569
- [stacktrace]: #stacktrace
570
- [stacktrace.basic]: #stacktrace.basic
571
- [stacktrace.basic.cmp]: #stacktrace.basic.cmp
572
- [stacktrace.basic.cons]: #stacktrace.basic.cons
573
- [stacktrace.basic.hash]: #stacktrace.basic.hash
574
- [stacktrace.basic.mod]: #stacktrace.basic.mod
575
- [stacktrace.basic.nonmem]: #stacktrace.basic.nonmem
576
- [stacktrace.basic.obs]: #stacktrace.basic.obs
577
- [stacktrace.basic.overview]: #stacktrace.basic.overview
578
- [stacktrace.entry]: #stacktrace.entry
579
- [stacktrace.entry.cmp]: #stacktrace.entry.cmp
580
- [stacktrace.entry.cons]: #stacktrace.entry.cons
581
- [stacktrace.entry.obs]: #stacktrace.entry.obs
582
- [stacktrace.entry.overview]: #stacktrace.entry.overview
583
- [stacktrace.entry.query]: #stacktrace.entry.query
584
- [stacktrace.format]: #stacktrace.format
585
- [stacktrace.general]: #stacktrace.general
586
- [stacktrace.syn]: #stacktrace.syn
587
- [std.exceptions]: #std.exceptions
588
- [std.exceptions.general]: #std.exceptions.general
589
- [stdexcept.syn]: #stdexcept.syn
590
- [syserr]: #syserr
591
- [syserr.compare]: #syserr.compare
592
- [syserr.errcat]: #syserr.errcat
593
- [syserr.errcat.derived]: #syserr.errcat.derived
594
- [syserr.errcat.nonvirtuals]: #syserr.errcat.nonvirtuals
595
- [syserr.errcat.objects]: #syserr.errcat.objects
596
- [syserr.errcat.overview]: #syserr.errcat.overview
597
- [syserr.errcat.virtuals]: #syserr.errcat.virtuals
598
- [syserr.errcode]: #syserr.errcode
599
- [syserr.errcode.constructors]: #syserr.errcode.constructors
600
- [syserr.errcode.modifiers]: #syserr.errcode.modifiers
601
- [syserr.errcode.nonmembers]: #syserr.errcode.nonmembers
602
- [syserr.errcode.observers]: #syserr.errcode.observers
603
- [syserr.errcode.overview]: #syserr.errcode.overview
604
- [syserr.errcondition]: #syserr.errcondition
605
- [syserr.errcondition.constructors]: #syserr.errcondition.constructors
606
- [syserr.errcondition.modifiers]: #syserr.errcondition.modifiers
607
- [syserr.errcondition.nonmembers]: #syserr.errcondition.nonmembers
608
- [syserr.errcondition.observers]: #syserr.errcondition.observers
609
- [syserr.errcondition.overview]: #syserr.errcondition.overview
610
- [syserr.general]: #syserr.general
611
- [syserr.hash]: #syserr.hash
612
- [syserr.syserr]: #syserr.syserr
613
- [syserr.syserr.members]: #syserr.syserr.members
614
- [syserr.syserr.overview]: #syserr.syserr.overview
615
- [system.error.syn]: #system.error.syn
616
- [underflow.error]: #underflow.error
617
- [unord.hash]: utilities.md#unord.hash
 
227
  const_iterator cbegin() const noexcept;
228
  const_iterator cend() const noexcept;
229
  const_reverse_iterator crbegin() const noexcept;
230
  const_reverse_iterator crend() const noexcept;
231
 
232
+ bool empty() const noexcept;
233
  size_type size() const noexcept;
234
  size_type max_size() const noexcept;
235
 
236
  const_reference operator[](size_type) const;
237
  const_reference at(size_type) const;
 
269
 
270
  ``` cpp
271
  static basic_stacktrace current(const allocator_type& alloc = allocator_type()) noexcept;
272
  ```
273
 
274
+ *Returns:* A `basic_stacktrace` object with *frames\_* storing the
275
  stacktrace of the current evaluation in the current thread of execution,
276
+ or an empty `basic_stacktrace` object if the initialization of
277
+ *frames\_* failed. `alloc` is passed to the constructor of the
278
+ *frames\_* object.
279
 
280
  [*Note 1*: If the stacktrace was successfully obtained, then
281
+ *`frames_`*`.front()` is the `stacktrace_entry` representing
282
+ approximately the current evaluation, and *`frames_`*`.back()` is the
283
+ `stacktrace_entry` representing approximately the initial function of
284
+ the current thread of execution. — *end note*]
285
 
286
  ``` cpp
287
  static basic_stacktrace current(size_type skip,
288
  const allocator_type& alloc = allocator_type()) noexcept;
289
  ```
290
 
291
  Let `t` be a stacktrace as-if obtained via
292
  `basic_stacktrace::current(alloc)`. Let `n` be `t.size()`.
293
 
294
+ *Returns:* A `basic_stacktrace` object where *frames\_* is
295
  direct-non-list-initialized from arguments `t.begin() + min(n, skip)`,
296
  `t.end()`, and `alloc`, or an empty `basic_stacktrace` object if the
297
+ initialization of *frames\_* failed.
298
 
299
  ``` cpp
300
  static basic_stacktrace current(size_type skip, size_type max_depth,
301
  const allocator_type& alloc = allocator_type()) noexcept;
302
  ```
303
 
304
  Let `t` be a stacktrace as-if obtained via
305
  `basic_stacktrace::current(alloc)`. Let `n` be `t.size()`.
306
 
307
+ `skip <= skip + max_depth` is `true`.
308
 
309
+ *Returns:* A `basic_stacktrace` object where *frames\_* is
310
  direct-non-list-initialized from arguments `t.begin() + min(n, skip)`,
311
  `t.begin() + min(n, skip + max_depth)`, and `alloc`, or an empty
312
+ `basic_stacktrace` object if the initialization of *frames\_* failed.
313
 
314
  ``` cpp
315
  basic_stacktrace() noexcept(is_nothrow_default_constructible_v<allocator_type>);
316
  ```
317
 
 
319
 
320
  ``` cpp
321
  explicit basic_stacktrace(const allocator_type& alloc) noexcept;
322
  ```
323
 
324
+ *Effects:* `alloc` is passed to the *frames\_* constructor.
325
 
326
  *Ensures:* `empty()` is `true`.
327
 
328
  ``` cpp
329
  basic_stacktrace(const basic_stacktrace& other);
 
351
 
352
  ``` cpp
353
  allocator_type get_allocator() const noexcept;
354
  ```
355
 
356
+ *Returns:* *`frames_`*`.get_allocator()`.
357
 
358
  ``` cpp
359
  const_iterator begin() const noexcept;
360
  const_iterator cbegin() const noexcept;
361
  ```
362
 
363
+ *Returns:* An iterator referring to the first element in *frames\_*. If
364
  `empty()` is `true`, then it returns the same value as `end()`.
365
 
366
  ``` cpp
367
  const_iterator end() const noexcept;
368
  const_iterator cend() const noexcept;
 
383
  ```
384
 
385
  *Returns:* `reverse_iterator(cbegin())`.
386
 
387
  ``` cpp
388
+ bool empty() const noexcept;
389
  ```
390
 
391
+ *Returns:* *`frames_`*`.empty()`.
392
 
393
  ``` cpp
394
  size_type size() const noexcept;
395
  ```
396
 
397
+ *Returns:* *`frames_`*`.size()`.
398
 
399
  ``` cpp
400
  size_type max_size() const noexcept;
401
  ```
402
 
403
+ *Returns:* *`frames_`*`.max_size()`.
404
 
405
  ``` cpp
406
  const_reference operator[](size_type frame_no) const;
407
  ```
408
 
409
+ `frame_no < size()` is `true`.
410
 
411
+ *Returns:* *`frames_`*`[frame_no]`.
412
 
413
  *Throws:* Nothing.
414
 
415
  ``` cpp
416
  const_reference at(size_type frame_no) const;
417
  ```
418
 
419
+ *Returns:* *`frames_`*`[frame_no]`.
420
 
421
  *Throws:* `out_of_range` if `frame_no >= size()`.
422
 
423
  #### Comparisons <a id="stacktrace.basic.cmp">[[stacktrace.basic.cmp]]</a>
424
 
 
490
  ostream& operator<<(ostream& os, const basic_stacktrace<Allocator>& st);
491
  ```
492
 
493
  *Effects:* Equivalent to: `return os << to_string(st);`
494
 
495
+ ### Formatting support <a id="stacktrace.format">[[stacktrace.format]]</a>
496
 
497
  ``` cpp
498
  template<> struct formatter<stacktrace_entry>;
499
  ```
500
 
 
522
  For `formatter<basic_stacktrace<Allocator>>`, *format-spec* is empty.
523
 
524
  A `basic_stacktrace<Allocator>` object `s` is formatted as if by copying
525
  `to_string(s)` through the output iterator of the context.
526
 
527
+ ### Hash support <a id="stacktrace.basic.hash">[[stacktrace.basic.hash]]</a>
528
 
529
  ``` cpp
530
  template<> struct hash<stacktrace_entry>;
531
  template<class Allocator> struct hash<basic_stacktrace<Allocator>>;
532
  ```
533
 
534
  The specializations are enabled [[unord.hash]].
535