在成员函数中,我可以int *x像这样使用共享成员变量进行并行化
#pragma omp parallel for default(shared)
for(int i=0;i<size;i++) {
x[i]=i;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试
#pragma omp parallel for default(none) shared(x,size)
for(int i=0;i<size;i++) {
x[i]=i;
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:'obj::x' is not a variable in clause 'shared'.我更喜欢第二个版本,因为它宣布它正在使用的共享变量,提醒我确保没有竞争条件或类似的问题.
OpenMP声称这obj::x不是一个变量?