このセクションのマクロは、ライブラリーのオプションの機能を制御します。
TBB_DEPRECATED マクロは、現在の機能との間で競合が発生する古い機能 (非推奨) を制御します。インテル® TBB 2.1 のインターフェイスを使用する場合は、1 に定義します。
TBB_USE_EXCEPTIONS マクロは、ライブラリー・ヘッダーが try、catch、および throw のような例外処理構造を使用するかどうかを制御します。TBB_USE_EXCEPTIONS=0 の場合、ヘッダーはこれらの構造を使用しません。
Windows*、Linux*、MacOS* オペレーティング・システムのデフォルト値は、コンパイラーで例外処理構造が有効にされている場合は 1、その他の場合は 0 です。
TBB_USE_EXCEPTIONS=0 であっても、ランタイム・ライブラリーは例外をスローすることがあります。
TBB_USE_CAPTURED_EXCEPTION マクロは、ライブラリー内での例外の再スローを制御します。C++ 1998 は、1 つのスレッドで例外をキャッチし、別のスレッドに再スローすることをサポートしていないため、ライブラリーは tbb::captured_exception と呼ばれる類似したものを再スローして並べ替えることがあります。
TBB_USE_CAPTURED_EXCEPTION=1 に定義すると、ライブラリーは類似したものを再スローできます。これは、プラットフォーム間の動作を統一する上で便利です。
TBB_USE_CAPTURED_EXCEPTION=0 に定義すると、(類似したものではなく) キャッチされた例外の再スローが要求されます。この設定は、C++11 の std::exception_ptr 機能をサポートするプラットフォームでのみ有効です。その他の場合は、コンパイル時診断が発行されます。
Windows*、Linux* および OS X* オペレーティング・システムのデフォルト値は、std::exception_ptr をサポートするホスト・コンパイラーでは 1、その他の場合は 0 です。IA-64 アーキテクチャー・プロセッサーでは、デフォルト値は 0 です。
例外の伝播が正しく行われるように、適切なライブラリー・バイナリーを使用してください。
C++11 仕様のコードを有効にするには、C++11 モードをサポートするコンパイラーを使用し、C++11 モードでコードをコンパイルします。コンパイラーの C++11 のサポートは、デフォルトではオフです。次の表は、サポートをオンにするオプションを示しています。