GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • cpprefjp - C++日本語リファレンス
  • GitHub Project

This view

  • Original page
  • New address

GeezerVison is showing cpprefjp.github.io — std::error_code - cpprefjp C++日本語リファレンス

  1. リファレンス
  2. system_error
  3. error_code

最終更新日時: 2026年09月19日 21時31分51秒 (JST)
rotarymars が更新

履歴 編集

class
<system_error>

std::error_code(C++11)

namespace std {
  class error_code;
}

概要

error_codeは、OSのAPIで発生するエラー値およびそのエラーメッセージを扱うクラスである。

このクラスは主に、system_error例外クラスに付加する情報として使用する。

メンバ関数

名前 説明 対応バージョン
(constructor) コンストラクタ C++11
~error_code() = default デストラクタ C++11
operator= 代入演算子 C++11
assign 値の再設定 C++11
clear エラー情報をクリアする C++11
value エラー値を取得する C++11
category エラーカテゴリを取得する C++11
default_error_condition error_codeに対応するerror_conditionを取得する C++11
message エラーメッセージを取得する C++11
explicit operator bool エラーかどうかを判定する C++11

非メンバ関数

名前 説明 対応バージョン
operator== 等値比較 C++11
operator!= 非等値比較 (C++20からoperator==により使用可能) C++11
operator<=> 三方比較 C++20
operator< 左辺が右辺より小さいか判定する (C++20からoperator<=>により使用可能) C++11
bool operator<=(const error_code&, const error_code&) noexcept; 左辺が右辺以下か判定する (operator<=>により使用可能) C++20
bool operator>(const error_code&, const error_code&) noexcept; 左辺が右辺より大きいか判定する (operator<=>により使用可能) C++20
bool operator>=(const error_code&, const error_code&) noexcept; 左辺が右辺以上か判定する (operator<=>により使用可能) C++20
operator<< ストリームへ出力 C++11
make_error_code errcからerror_codeオブジェクトを生成する C++11

その他

名前 説明 対応バージョン
hash error_codeでの特殊化 C++11
formatter std::formatterクラスの特殊化 C++29

例

#include <iostream>
#include <system_error>

int main()
{
  try {
    // 不正な引数エラー
    std::error_code ec(static_cast<int>(std::errc::invalid_argument),
                       std::generic_category());

    throw std::system_error(ec, "system error!");
  }
  catch (std::system_error& e) {
    // 例外オブジェクトからerror_codeを取得
    const std::error_code& ec = e.code();

    // エラー値とメッセージを出力
    std::cout << ec.value() << std::endl;
    std::cout << ec.message() << std::endl;
  }
}

出力

22
Invalid argument

バージョン

言語

  • C++11

処理系

  • Clang: 9.0.1 ✅
  • GCC: 4.7.0 ✅
  • Visual C++: 2010 ✅

参照

  • P3395R6 Fix encoding issues and add a formatter for std::error_code
    • C++29で、std::format()用のformatter特殊化が追加された
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.