機能マクロ

このセクションのマクロは、ライブラリーのオプションの機能を制御します。

TBB_DEPRECATED マクロ

TBB_DEPRECATED マクロは、現在のバージョンの機能と競合が発生する古いバージョンの機能 (非推奨) を制御します。インテル® スレッディング・ビルディング・ブロック (インテル® TBB) 2.1 のインターフェイスを使用する場合は、1 に定義します。

TBB_USE_EXCEPTIONS マクロ

TBB_USE_EXCEPTIONS マクロは、ライブラリー・ヘッダーが trycatch、および throw のような例外処理構造を使用するかどうかを制御します。TBB_USE_EXCEPTIONS=0 の場合、ヘッダーはこれらの構造を使用しません。

Windows®、Linux*、OS X* オペレーティング・システムのデフォルト値は、コンパイラーで例外処理構造が有効にされている場合は 1、その他の場合は 0 です。

注意

TBB_USE_EXCEPTIONS=0 であっても、ランタイム・ライブラリーは例外をスローすることがあります。

TBB_USE_CAPTURED_EXCEPTION マクロ

TBB_USE_CAPTURED_EXCEPTION マクロは、ライブラリー内での例外の再スローを制御します。C++ 1998 は、1 つのスレッドで例外をキャッチし、別のスレッドに再スローすることをサポートしていないため、ライブラリーは tbb::captured_exception と呼ばれる例外オブジェクトを再スローして並べ替えることがあります。

Windows®、Linux* および OS X* オペレーティング・システムのデフォルト値は、std::exception_ptr をサポートするホスト・コンパイラーでは 1、その他の場合は 0 です。IA-64 アーキテクチャー・プロセッサーでは、デフォルト値は 0 です。

注意

例外の伝播が正しく行われるように、適切なライブラリー・バイナリーを使用してください。

C++11 のサポート

C++11 仕様のコードを有効にするには、C++11 モードをサポートするコンパイラーを使用し、C++11 モードでコードをコンパイルします。コンパイラーの C++11 のサポートは、デフォルトではオフです。次の表は、サポートをオンにするオプションを示しています。

C++11 のサポートを設定するコンパイルコマンド

環境

インテル® C++ コンパイラー 11.0

コンパイルコマンドとオプション

Windows® システム

icl /Qstd=c++0x foo.cpp (13.0 以降では /Qstd=C++11 を利用)

Linux* システム

OS X* システム

icc -std=c++0x foo.cpp (13.0 以降では /Qstd=C++11 を利用)

場合によっては、インテル® TBB ヘッダーは C++ 標準ライブラリーの C++11 機能を正しく検出できません。例えば、GNU libstdc++ ライブラリーを、GCC バージョンマクロ (__GNUC__ など) を設定しないコンパイラーや、libstdc++ のバージョンと一致しないバージョンを設定する Clang コンパイラーとともに使用すると、検出に失敗します。

検出に失敗する場合、マクロ TBB_USE_GLIBCXX_VERSION を使用して GNU libstdc++ の適切なバージョンを指定できます。Major*10000 + Minor*100 + Patch になるようにマクロの値を定義します。ここで、Major.Minor.Patch は実際の GCC/libstdc++ のバージョンです (不明な場合は、'gcc -dumpversion' コマンドを実行して取得できます)。例えば、GCC 4.9.2 の libstdc++ を使用する場合は、TBB_USE_GLIBCXX_VERSION=40902 のように定義します。

関連情報