ブーストシステム

後押し::システム:: ERROR_CODEはBoost.Systemの中で最も基本的なクラスです。それは、オペレーティング・システム固有のエラーを表します。オペレーティング・システムは、一般的にエラーを列挙しているので、後押し::システム:: ERROR_CODEはint型の変数にエラーコードが保存されます。

1. ERROR_CODE

<ブースト/システム/ error_code.hpp>含める
の#include <iostreamの>

使用して 名前空間のブースト::システム。

無効失敗(ERROR_CODE&EC)
{
  EC = ERRC :: make_error_code(ERRC :: NOT_SUPPORTED)。
}

int型のmain()
{
  ECをERROR_CODE。
  (EC)が失敗。
  std :: coutの << ec.value()<< はstd ::てendl; 
std :: coutの<< ec.category()<<はstd ::てendl;
リターン 0 ; }

ブースト::システム:: ERRC :: NOT_SUPPORTEDの数であり、ECは型ブースト::システム:: ERROR_CODE、機能ブースト::システム:: ERRC :: make_error_code()が呼び出されるの目的です。この関数は、それぞれのエラーコードで型ブースト::システムのオブジェクト:: ERROR_CODEを作成します。

値()メンバ関数は、オブジェクトに格納されたエラーコードを返します。

タイプのエラーコードは、boost::system::error_codeメンバ関数で取得することができますカテゴリに属していますcategory()で作成されたエラーboost::system::errc::make_error_code()を自動的には、一般的なカテゴリに属しています。これは、彼らが明示的に別のカテゴリに割り当てられていない場合、エラーが属するカテゴリです。

2.エラーのカテゴリを作成します

書式#include <ブースト/システム/ error_code.hpp> 
の#include < 文字列 > 
の#include <iostreamの>

クラスapplication_categoryに:
   公共ブースト::システム:: error_category
{
公共CONST  文字 *名()constの noexcept { リターン " 私のアプリ" }
  std :: 文字列のメッセージ(int型 EV)のconst { リターン " エラーメッセージ" }
}。

application_categoryに猫;

int型のmain()
{
  後押し::システム:: ERROR_CODE EC(129 、猫);
  std :: coutの << ec.value()<< はstd ::てendl;
  std :: coutの << ec.category()名()<< はstd ::てendl;
  リターン 0 ;
}

新しいエラーカテゴリがブースト::システム:: error_categoryから派生したクラスを作成することによって定義されます。これは、様々なメンバ関数を定義する必要があります。それらは、ブーストに純粋仮想メンバー関数として定義されているため、最低でも、メンバ関数名()とメッセージ()が供給されなければならない::システム:: error_category。名前は()エラーカテゴリの名前を返しながら、メッセージは()は、特定のエラーコードのエラーの説明を取得するために使用されます。

3. error_condition

書式#include <ブースト/システム/ error_code.hpp> 
の#include <iostreamの>

使用して 名前空間のブースト::システム。

無効(失敗ERROR_CODE&EC)
{
  EC = ERRC :: make_error_code(ERRC :: NOT_SUPPORTED)。
}

int型のmain()
{
  ECをERROR_CODE。
  (EC)が失敗。
  ブースト::システム:: error_condition ecnd = ec.default_error_conditionを();
  std :: coutの << ecnd.value()<<はstd ::てendl;
  std :: coutの << ecnd.category()名()<< はstd ::てendl;
  リターン 0 ;
}

後押し::システム:: error_conditionがちょうどブースト::システム:: ERROR_CODEのように使用されます。

クラスは一方でboost::system::error_codeプラットフォーム依存のエラーコードのために使用され、boost::system::error_conditionプラットフォームに依存しないエラー・コードにアクセスするために使用されます。メンバ関数はdefault_error_condition()タイプのプラットフォームに依存しないエラーコードにプラットフォーム依存のエラーコードを変換しますboost::system::error_condition

おすすめ

転載: www.cnblogs.com/sssblog/p/11335234.html
おすすめ