Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
"
pragma omp atomic": Es wurde ein Ausdruck vom Skalartyp erwartet.
Hinweise
OpenMP schränkt Ausdrücke in #pragma omp atomic Konstrukten auf skalaren Typ ein.
Compilerfehler C7688 ist neu in Visual Studio 2022, Version 17.4. In früheren Compilerversionen würde der Compiler den Fehler C3048 ausgeben.
Beispiel
Der Beispielcode zeigt die Diagnose, die für nicht skalare Typen in #pragma omp atomic Konstrukten generiert wird.
// 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'
*/
Verwenden Sie skalare Typen in #pragma omp atomic Konstrukten, um dieses Problem zu beheben.