Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
'
pragma omp atomic
': förväntade ett uttryck av skalär typ
Anmärkningar
OpenMP begränsar uttryck i #pragma omp atomic
konstruktioner till skalär typ.
Kompilatorfel C7688 är nytt i Visual Studio 2022 version 17.4. I tidigare kompilatorversioner skulle kompilatorn generera felet C3048.
Exempel
Exempelkoden visar diagnostik som genererats för icke-skalära typer i #pragma omp atomic
konstruktioner.
// 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'
*/
Lös problemet genom att använda skalära typer i #pragma omp atomic
konstruktioner.