[stacktrace.entry]

19 Diagnostics library [diagnostics]

19.6.3 Class stacktrace_entry [stacktrace.entry]


19.6.3.1 Overview [stacktrace.entry.overview]

19.6.3.2 Constructors [stacktrace.entry.cons]

19.6.3.3 Observers [stacktrace.entry.obs]

19.6.3.4 Query [stacktrace.entry.query]

19.6.3.5 Comparison [stacktrace.entry.cmp]


19.6.3.1 Overview [stacktrace.entry.overview]

namespace std { class stacktrace_entry { public: using native_handle_type = implementation-defined; constexpr stacktrace_entry() noexcept; constexpr stacktrace_entry(const stacktrace_entry& other) noexcept; constexpr stacktrace_entry& operator=(const stacktrace_entry& other) noexcept; ~stacktrace_entry(); constexpr native_handle_type native_handle() const noexcept; constexpr explicit operator bool() const noexcept; string description() const; string source_file() const; uint_least32_t source_line() const; 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.

19.6.3.2 Constructors [stacktrace.entry.cons]

constexpr stacktrace_entry() noexcept;

Postconditions: *this is empty.

19.6.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.

19.6.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.

19.6.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.