2012-03-19 1 views
0

OpenCLをプログラミングしてC++を使用するとき、関数clCreateContext(...)を呼び出すときに、コールバック関数を何かがうまくいかない。このコールバックに例外をスローするのは安全ですか? OpenCLはC APIであり例外を使用しないので、エラー処理のこのアプローチに問題があるかどうかはわかりませんでした。clCreateContext()に登録されたコールバックでC++で例外をスローすることは安全ですか?

+1

私はCLを一度も使用したことはありませんが、教育上の推測と「いいえ」と言います。 –

+1

私は、コールバックに関する情報と、コールバックを呼び出すコードによってエラー処理がどのように予期されるかについて、ドキュメントをチェックします。呼び出し側が問題の場合にエラーコードを返すことを期待している場合は、それを行う必要があります。最初の場所で例外を期待していないときにコールバックを呼び出す他の人のコードに例外を戻すことで、どんな利益が得られるのか分かりません。 – Nerdtron

+0

興味深いのは、例外はどこに行くのでしょうか?コールバックはOpenCLから呼び出され、おそらくメインスレッドではないので、例外がハンドリングコードの近くにあるという保証はありません(モジュール境界のような考慮事項は別にしておきます)。それで、おそらくできることはあまりありません。 – Damon

答えて

4

インターフェイス/モジュールの境界を越えて例外をスローしないでください。これは1つとしてカウントされます。例外は処理されず、プログラムがクラッシュする可能性があります。

関連する問題