컴파일러 오류 C7688
'
pragma omp atomic
': 스칼라 형식의 식이 필요합니다.
설명
OpenMP는 구문의 식을 #pragma omp atomic
스칼라 형식으로 제한합니다.
컴파일러 오류 C7688은 Visual Studio 2022 버전 17.4의 새로운 기능입니다. 이전 컴파일러 버전에서 컴파일러는 오류 C3048을 내보낸 것입니다.
예시
샘플 코드는 구문에서 스칼라가 아닌 형식에 #pragma omp atomic
대해 생성된 진단을 보여 줍니다.
// C7688.cpp
// compile using /c /openmp:llvm
struct S { char c; };
S operator+(S, int);
void test()
{
S s1, s2;
#pragma omp atomic capture
{ s1 = s2; s2 = s1 + 1; }
}
/*
When built, the compiler emits:
.\C7688.cpp(10,10): error C7688: '#pragma omp atomic': expected an expression of scalar type
{ s1 = s2; s2 = s1 + 1; }
^
.\C7688.cpp(10,10): note: type is 'S'
*/
이 문제를 해결하려면 구문에서 스칼라 형식을 #pragma omp atomic
사용합니다.