コンストラクターとオーバーロードされた演算子をプレーン C の構造体に追加できることを思い出せません。私が読んでいる本では、CUDA C の例で両方を使用しています。
C と CUDA C の構造体に違いがある場合、それらの一般的な説明は何ですか? この本では、CUDA C で C++ スタイルの構造体を使用しています。
コンストラクターとオーバーロードされた演算子をプレーン C の構造体に追加できることを思い出せません。私が読んでいる本では、CUDA C の例で両方を使用しています。
C と CUDA C の構造体に違いがある場合、それらの一般的な説明は何ですか? この本では、CUDA C で C++ スタイルの構造体を使用しています。
1) C 構造体はデータ メンバーのみを含むことができますが、CUDA C は関数などを含むことができる C++ スタイル クラスに似ています。
2) CUDA 構造体と CUDA クラスの唯一の大きな違いは、前者ではすべてのメンバーがデフォルトでパブリックであることです。
CUDA C は実際には CUDA C++ であり、C++ コンパイラに依存しています。
経験nvcc
上、実際の C コードのコンパイルには問題があります (C++ コンパイラと同じ理由で)。
--host-compilation
コンパイラを からC
に切り替えるオプションがありましたが、C++
機能しませんでした。(こちらをご覧ください)