サポートしていないコンパイラ (PGI) を使用しています。
#pragma once
しかし、私が含めたいライブラリ(スラスト)はそれらを使用しています。
この問題の回避策はありますか?
サポートしていないコンパイラ (PGI) を使用しています。
#pragma once
しかし、私が含めたいライブラリ(スラスト)はそれらを使用しています。
この問題の回避策はありますか?
Guardonce#pragma once
を使用して、ステートメントを標準の#ifndef ...
インクルード ガードに変換できます。
以下は私のために働いた:
cd /tmp
git clone https://github.com/thrust/thrust.git
git clone https://github.com/cgmb/guardonce.git
cd guardonce
git checkout v2.0.0
python -m guardonce.once2guard -r "/tmp/thrust/thrust/"
これにより、すべてのスラスト ヘッダー ファイルにインクルード ガードが作成されます。
git diff /tmp/thrust
--- a/thrust/adjacent_difference.h
+++ b/thrust/adjacent_difference.h
@@ -19,7 +19,8 @@
* \brief Compute difference between consecutive elements of a range
*/
-#pragma once
+#ifndef ADJACENT_DIFFERENCE_H
+#define ADJACENT_DIFFERENCE_H
. . .
マクロ (したがって #pragma) はプリプロセッサ (cpp、c++ 拡張と間違わないでください) によって処理されるため、理論的には、#pragma をサポートするプリプロセッサを使用してみて、結果のコードをコンパイラでビルドすることができます。