C++ 引用类型上的OpenMP原子?

C++ 引用类型上的OpenMP原子?,c++,openmp,atomic,reference-type,C++,Openmp,Atomic,Reference Type,OpenMP标准(引用类型不是标量类型。但是,这一事实与您的问题无关。重要的事实是,对标量类型引用求值的表达式是标量类型的左值。具体而言,变量reference具有typeint&,但表达式reference具有typet和值类别左值。因此,是的,您的程序符合要求 int main() { int myCounter = 0; int& reference = myCounter; #pragma omp parallel for for (int i = 0; i &

OpenMP标准(引用类型不是标量类型。但是,这一事实与您的问题无关。重要的事实是,对标量类型引用求值的表达式是标量类型的左值。具体而言,变量
reference
具有type
int&
,但表达式
reference
具有type
t
和值类别左值。因此,是的,您的程序符合要求

int main()
{
  int myCounter = 0;
  int& reference = myCounter;

  #pragma omp parallel for
  for (int i = 0; i < 100; ++i)
  {
    #pragma omp atomic
    reference++; // Increment through reference.
  }
  return 0;
}