Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'
pragma omp atomic': verwacht een expressie van scalaire type
Opmerkingen
OpenMP beperkt expressies in #pragma omp atomic constructies tot scalaire typen.
Compilerfout C7688 is nieuw in Visual Studio 2022 versie 17.4. In eerdere compilerversies zou de compiler fout C3048 verzenden.
Voorbeeld
De voorbeeldcode toont diagnostische gegevens die zijn gegenereerd voor niet-scalaire typen in #pragma omp atomic constructies.
// 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'
*/
Gebruik scalaire typen in #pragma omp atomic constructies om dit probleem op te lossen.