在OpenCL C99中,我们可以编写此代码以创建'float2'的新实例:float f = (float2)(1.f, 2.f);
我的问题是我需要在C++中使用EXACT SAME代码,为此我创建了
一个新的类float2,但在这种情况下似乎未调用以下运算符:inline float2 operator()(const float a, const float b) { return float2(a, b); }
有人对解决方案有想法吗?
最佳答案
从jprice's comment开始,如果您可以更改OpenCL代码的语法,则可以通过在C++代码中定义一个简单的struct
来使这两种语言都可以使用:
struct float2 {
float x, y;
// define operators here
};
然后您可以执行以下操作,而不是使用上面的“cast-style”语法:
float2 f;
f.x = 1.f; f.y = 2.f;
这将在两个工作。
关于c++ - 模仿C++中的OpenCL float2类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23909389/