最終更新日時(UTC):
が更新

履歴 編集

class template
<stacktrace>

std::stacktrace_entry(C++23)

namespace std {
  class stacktrace_entry;
}

概要

メンバ関数

構築・破棄

名前 説明 対応バージョン
(constructor) コンストラクタ C++23
~basic_stacktrace(); デストラクタ C++23
operator= 代入演算子 C++23

観測

名前 説明 対応バージョン
native_handle ハンドルを取得する C++23
operator bool 空でないかを判定する C++23

照会

名前 説明 対応バージョン
description スタックトレースの履歴数を取得する C++23
source_file 格納可能な最大の要素数を取得する C++23
source_line スタックトレースの履歴が空かどうかを判定する C++23

メンバ型

名前 説明 対応バージョン
native_handle_type 実装依存のハンドル型 C++23

非メンバ関数

入出力

名前 説明 対応バージョン
operator<< 出力ストリームに出力する C++23

文字列への変換

名前 説明 対応バージョン
to_string 文字列に変換する C++23

比較演算子

名前 説明 対応バージョン
operator== 等値比較を行う C++23
bool operator!=(const stacktrace_entry&, const stacktrace_entry&) noexcept; 非等値比較を行う (==により使用可能) C++23
operator<=> 三方比較を行う C++23
strong_ordering operator<(const stacktrace_entry&, const stacktrace_entry&) noexcept; 左辺が右辺より小さいかを判定する (<=>により使用可能) C++23
strong_ordering operator<=(const stacktrace_entry&, const stacktrace_entry&) noexcept; 左辺が右辺以下かを判定する (<=>により使用可能) C++23
strong_ordering operator>(const stacktrace_entry&, const stacktrace_entry&) noexcept; 左辺が右辺より大きいかを判定する (<=>により使用可能) C++23
strong_ordering operator>=(const stacktrace_entry&, const stacktrace_entry&) noexcept; 左辺が右辺以上かを判定する (<=>により使用可能) C++23

ハッシュサポート

名前 説明 対応バージョン
template <class T> struct hash; hashクラスの先行宣言 C++23
template <>
struct hash<stacktrace_entry>;
hashクラスのstacktrace_entryに対する特殊化 C++23

#include <iostream>
#include <stacktrace>

void g() {
  std::stacktrace st = std::stacktrace::current(0, 1);
  std::stacktrace_entry entry = st[0];

  std::cout << entry.description() << std::endl;
  std::cout << entry.source_file() << std::endl;
  std::cout << entry.source_line() << std::endl;
}

void f() {
  g();
}

int main() {
  f();
}

出力例

g() at main.cpp:5
main.cpp
5

バージョン

言語

  • C++23

処理系