std::basic_...ce::current(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

🫢 std::basic_stacktrace::current(3) β€” straight from the C++ Standard Libary 🫢

okay bestie, welcome to the std::basic_stacktrace::current(3) page from the C++ Standard Libary manual. this one is lowkey niche but highkey useful: it's all about grabbing a stacktrace of the current evaluation in the current thread. let's get into it ✨


✨ NAME ✨

std::basic_stacktrace::current β€” std::basic_stacktrace::current

(yes, that's the whole name section, and honestly? iconic repetition πŸ’…)


🌈 Synopsis 🌈

here's the synopsis, copied exactly because we do not mess with signatures in this house 🫢

          static basic_stacktrace current( const allocator_type& alloc =
       (1) (since C++23)
                                               allocator_type() ) noexcept;
          static basic_stacktrace current( size_type skip, const
          allocator_type& alloc =
       (2) (since C++23)
                                               allocator_type() ) noexcept;
          static basic_stacktrace current( size_type skip, size_type
          max_depth,
                                                                             (3)
       (since C++23)
                                           const allocator_type& alloc =

                                               allocator_type() ) noexcept;

Let s[i] (0 ≀ i < n) denote the (i+1)-th stacktrace entry in the stacktrace of the current evaluation in the current thread of execution, where n is the count of the stacktrace entries in the stackentry.

  1. (1) β€” Attempts to create a basic_stacktrace consisting of s[0], s[1], ..., s[n - 1].
  2. (2) β€” Attempts to create a basic_stacktrace consisting of s[m], s[m + 1], ..., s[n - 1], where m is min(skip, n).
  3. (3) β€” Attempts to create a basic_stacktrace consisting of s[m], s[m + 1], ..., s[o - 1], where m is min(skip, n) and o is min(skip + max_depth, n). The behavior is undefined if skip + max_depth < skip (i.e. the mathematical result of skip + max_depth overflows). 🫠

In all cases, alloc is stored into the created basic_stacktrace and used to allocate the storage for stacktrace entries.


πŸŽ€ Parameters πŸŽ€

  • alloc β€” allocator to use for all memory allocations of the constructed basic_stacktrace
  • skip β€” the number of stacktrace entries to skip
  • max_depth β€” the maximum depth of the stacktrace entries

πŸ’– Return value πŸ’–

If the allocation succeeds, the basic_stacktrace described above.

Otherwise, an empty basic_stacktrace.


πŸ¦‹ Example πŸ¦‹

This section is incomplete Reason: no example

not me showing up to the example section with nothing but vibes 😭


🌸 See also 🌸

  • constructor β€” creates a new basic_stacktrace (public member function)
  • current [static] β€” constructs a new source_location corresponding to the location of the call site (public static member function of std::source_location)

⭐ Category ⭐

  • * Todo no example

mwah πŸ’‹ this page came from http://cppreference.com, version/date 2024.06.10, and the page title is std::basic_...ce::current(3). bye bestie, go build something iconic πŸŽ€βœ¨

πŸ“¦ where this page comes from