別のスレッドに移動できる例外。
class tbb_exception;
#include "tbb/tbb_exception.h"
並列環境では、複数のスレッドに例外を伝えなければならないことがあります。これは、tbb_exception クラスの std::exception サブクラスでサポートされています。
namespace tbb {
class tbb_exception: public std::exception {
virtual tbb_exception* move() = 0;
virtual void destroy() throw() = 0;
virtual void throw_self() = 0;
virtual const char* name() throw() = 0;
virtual const char* what() throw() = 0;
};
}
派生したクラスは、次のように抽象仮想メソッドを定義すべきです。
move() は、オリジナルよりも長く存在できる例外のコピーへのポインターを作成します。オリジナルのコンテンツを移動することもできます。
destroy() は、move() で作成されたコピーを破棄します。
throw_self() は、*this をスローします。
name() は、通常、オリジナルの例外の RTTI 名を返します。
what() は、例外の説明である null 終了文字列を返します。