最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<stacktrace>

# std::basic_stacktrace::swap(C++23)

    void swap(basic_stacktrace& other)
            noexcept(
              allocator_traits<Allocator>::propagate_on_container_swap::value ||
              allocator_traits<Allocator>::is_always_equal::value
            );                           // (1) C++23

## 概要

他の`basic_stacktrace`オブジェクトとデータを入れ替える。

## 効果

`*this`と`other`の内容を交換する。

## 例

    #include <iostream>
    #include <stacktrace>

    void g() {
      std::stacktrace a = std::stacktrace::current();
      std::stacktrace b = std::stacktrace::current();
      a.swap(b);

      std::cout << a << std::endl; // bで取得したスタックトレースが出力される
    }

    void f() {
      g();
    }

    int main() {
      f();
    }

### 出力例 (GCC)

       0#  g() at /app/example.cpp:6
       1#  f() at /app/example.cpp:13
       2# main at /app/example.cpp:17
       3#      at :0
       4#      at :0
       5# _start at :0
       6#

## バージョン

### 言語

- C++23

### 処理系

- Clang: ??
- GCC: 12 ✅
- Visual C++: ??