• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    class template
    <stacktrace>

    std::stacktrace_entry

    namespace std {
      class stacktrace_entry;
    }
    

    概要

    stacktrace_entryは、スタックトレースの各エントリ (行) を表すクラスであり、各エントリの情報を問い合せる操作を提供する。

    このクラスは、regularおよびthree_way_comparable<strong_ordering>のモデルである。

    メンバ関数

    構築・破棄

    名前 説明 対応バージョン
    (constructor) コンストラクタ C++23
    ~stacktrace_entry(); デストラクタ C++23
    constexpr stacktrace_entry& operator=(const stacktrace_entry& other) noexcept; 代入演算子 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
    friend constexpr strong_ordering operator<=>(const stacktrace_entry& x, const stacktrace_entry& y) 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
    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

    文字列フォーマットサポート

    名前 説明 対応バージョン
    formatter std::formatterクラスの特殊化 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();
    }
    

    出力例 (GCC)

    g()
    /app/example.cpp
    5
    

    バージョン

    言語

    • C++23

    処理系