示例:
thrust::device_vector < MyClass >dvc_vec;
MyClass& tmp = dvc_vec[blockIdx.x].operator MyClass();
若不采用此方法,而是
MyClass& tmp = dvc_vec[blockIdx.x];
则会报错:非常量引用的初始值必须为左值。
类似的,试图以传统方式访问成员变量也会报错,具体如下:
dvc_vec[0].func();// 报错:...没有成员"func"
dvc_vec[0].operator MyClass().func();// 不报错