20 General utilities library [utilities]

20.21 Stacktrace [stacktrace]

20.21.3 Class stacktrace_­entry [stacktrace.entry]

20.21.3.1 Overview [stacktrace.entry.overview]

namespace std { class stacktrace_entry { public: using native_handle_type = implementation-defined; // [stacktrace.entry.ctor], constructors constexpr stacktrace_entry() noexcept; constexpr stacktrace_entry(const stacktrace_entry& other) noexcept; constexpr stacktrace_entry& operator=(const stacktrace_entry& other) noexcept; ~stacktrace_entry(); // [stacktrace.entry.obs], observers constexpr native_handle_type native_handle() const noexcept; constexpr explicit operator bool() const noexcept; // [stacktrace.entry.query], query string description() const; string source_file() const; uint_least32_t source_line() const; // [stacktrace.entry.cmp], comparison friend constexpr bool operator==(const stacktrace_entry& x, const stacktrace_entry& y) noexcept; friend constexpr strong_ordering operator<=>(const stacktrace_entry& x, const stacktrace_entry& y) noexcept; }; }
An object of type stacktrace_­entry is either empty, or represents a stacktrace entry and provides operations for querying information about it.
The class stacktrace_­entry models regular ([concepts.object]) and three_­way_­comparable<strong_­ordering> ([cmp.concept]).

20.21.3.2 Constructors [stacktrace.entry.ctor]

constexpr stacktrace_entry() noexcept;
Postconditions: *this is empty.

20.21.3.3 Observers [stacktrace.entry.obs]

constexpr native_handle_type native_handle() const noexcept;
The semantics of this function are implementation-defined.
Remarks: Successive invocations of the native_­handle function for an unchanged stacktrace_­entry object return identical values.
constexpr explicit operator bool() const noexcept;
Returns: false if and only if *this is empty.

20.21.3.4 Query [stacktrace.entry.query]

[Note 1:
All the stacktrace_­entry query functions treat errors other than memory allocation errors as β€œno information available” and do not throw in that case.
β€” end note]
string description() const;
Returns: A description of the evaluation represented by *this, or an empty string.
Throws: bad_­alloc if memory for the internal data structures or the resulting string cannot be allocated.
string source_file() const;
Returns: The presumed or actual name of the source file ([cpp.predefined]) that lexically contains the expression or statement whose evaluation is represented by *this, or an empty string.
Throws: bad_­alloc if memory for the internal data structures or the resulting string cannot be allocated.
uint_least32_t source_line() const;
Returns: 0, or a 1-based line number that lexically relates to the evaluation represented by *this.
If source_­file returns the presumed name of the source file, returns the presumed line number; if source_­file returns the actual name of the source file, returns the actual line number.
Throws: bad_­alloc if memory for the internal data structures cannot be allocated.

20.21.3.5 Comparison [stacktrace.entry.cmp]

friend constexpr bool operator==(const stacktrace_entry& x, const stacktrace_entry& y) noexcept;
Returns: true if and only if x and y represent the same stacktrace entry or both x and y are empty.