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();
}
xxxxxxxxxx
#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++: ??