Files
2025-10-25 03:02:53 +03:00

6.3 KiB
Raw Permalink Blame History

[stacktrace.entry]

19 Diagnostics library [diagnostics]

19.6 Stacktrace [stacktrace]

19.6.3 Class stacktrace_entry [stacktrace.entry]

19.6.3.1 Overview [stacktrace.entry.overview]

namespace std {class stacktrace_entry {public:using native_handle_type = implementation-defined; // [stacktrace.entry.cons], constructorsconstexpr 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], observersconstexpr 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], comparisonfriend 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; };}

1

#

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 modelsregular ([concepts.object]) andthree_way_comparable<strong_ordering> ([cmp.concept]).

19.6.3.2 Constructors [stacktrace.entry.cons]

🔗

constexpr stacktrace_entry() noexcept;

1

#

Postconditions: *this is empty.

19.6.3.3 Observers [stacktrace.entry.obs]

🔗

constexpr native_handle_type native_handle() const noexcept;

1

#

The semantics of this function areimplementation-defined.

2

#

Remarks: Successive invocations of the native_handle function for an unchanged stacktrace_entry object return identical values.

🔗

constexpr explicit operator bool() const noexcept;

3

#

Returns: false if and only if *this is empty.

19.6.3.4 Query [stacktrace.entry.query]

1

#

[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;

2

#

Returns: A description of the evaluation represented by *this, or an empty string.

3

#

Throws: bad_alloc if memory for the internal data structures or the resulting string cannot be allocated.

🔗

string source_file() const;

4

#

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.

5

#

Throws: bad_alloc if memory for the internal data structures or the resulting string cannot be allocated.

🔗

uint_least32_t source_line() const;

6

#

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.

7

#

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;

1

#

Returns: true if and only if x and y represent the same stacktrace entry or both x and y are empty.