別のスレッドに移動できる例外。
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 終了文字列を返します。