Skip to content

Latest commit

 

History

History
71 lines (55 loc) · 1.67 KB

op_constructor.md

File metadata and controls

71 lines (55 loc) · 1.67 KB

コンストラクタ

  • exception[meta header]
  • std[meta namespace]
  • nested_exception[meta class]
  • function[meta id-type]
  • cpp11[meta cpp]
nested_exception() noexcept;           // (1) C++11
constexpr nested_exception() noexcept; // (1) C++26

nested_exception(const nested_exception&) noexcept = default;           // (2) C++11
constexpr nested_exception(const nested_exception&) noexcept = default; // (2) C++26

nested_exceptionオブジェクトの構築

  • (1) : current_exception()を呼び出し、その戻り値をメンバ変数として保持する。

例外

投げない

#include <exception>
#include <iostream>

class my_exception : public std::nested_exception {};

int main()
{
  try {
    try {
      throw 1;
    }
    catch (int& x) {
      my_exception e; // 現在の例外(int)が保持される

      // my_exceptionによって入れ子になった例外へのポインタを取得して再送出
      std::rethrow_exception(e.nested_ptr());
    }
  }
  catch (int& x) {
    std::cout << x << std::endl;
  }
} 
  • nested_ptr()[link nested_ptr.md]
  • std::rethrow_exception[link /reference/exception/rethrow_exception.md]

出力

1

バージョン

言語

  • C++11

処理系

関連項目