0
我試圖爲cl_float4創建覆蓋。OpenCL cl_float4運算符覆蓋
定義:
cl_float4 operator- (const cl_float4 &V1, const cl_float4 &V2);
實現:
cl_float4 operator- (cl_float4 &V1, cl_float4 &V2){
return {V1.x - V2.x, V1.y - V2.y, V1.z - V2.z, V1.w - V2.w};
}
現在,當我做這樣的事情:
cl_float4 a = {1,2,3,4}, b = {4,3,2,1};
cl_float4 c = a - b;
這一切工作正常,但:
cl_float4 A = {1,2,3,4},b = {4,3,2,1};
cl_float4 c = a - b - b;
給出了一個錯誤: 「無效的操作數爲二進制表達式(cl_float4和cl_float4)」
難道你沒有像x,y,z,w這樣的東西不是cl_float4的成員嗎? – CaptainObvious
我剛剛複製粘貼你的代碼,我有這個錯誤。當我用s [0],s [1],etx代替x,y,z,w時,它對兩種情況都很好。 – CaptainObvious
用s [0] -s [3]改變了x,y,z,w。仍然是同樣的事情。 – user1513100