DPCT1064

メッセージ

移行した <関数名> の呼び出しは、マクロ定義で使用されていますが、すべてのマクロの使用に対して有効ではありません。コードを調整します。

説明

この警告は、関数呼び出しがマクロ定義で使用されており、マクロの呼び出し方に応じて異なる移行が必要な場合に生成されます。インテル® DPC++ 互換性ツールは、マクロの呼び出しの 1 つに対しては有効なコードを生成しますが、コード内のこのマクロのすべての呼び出しに対しては有効ではない場合があります。

例えば、関数 pow は、マクロ引数で渡されるパラメーター・タイプに応じて、sycl::pow<double> または sycl::pown に移行されます。

1
2
3
#define POW(B, E) pow(B, E)
POW(2.5, 3.1);  //should be migrated to sycl::pow<double>(2.5, 3.1)
POW(2.5, 3); //should be migrated to sycl::pown((float)2.5, 3)

修正方法の提案

移行したコードで、マクロの異なる使用法に対して新しいマクロを定義します。