नोट
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप साइन इन करने या निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
'symbol' : dynamic initialization of 'threadprivate' symbols is not currently supported
Remarks
The initialized value of a symbol used in a threadprivate clause must be known at compile time.
Examples
The following example generates C3057:
// C3057.cpp
// compile with: /openmp /c
extern int f();
int x, y = f();
int a, b;
#pragma omp threadprivate(x, y) // C3057
#pragma omp threadprivate(a, b)
int main() {
// Delete the following 4 lines to resolve.
#pragma omp parallel copyin(x, y)
{
x = y;
}
#pragma omp parallel copyin(a, b)
{
a = b;
}
}
The following example generates C3057:
// C3057b.cpp
// compile with: /openmp /c
extern int Initialize();
int main() {
#pragma omp parallel
{
static int var = Initialize();
#pragma omp threadprivate(var) // C3057
}
// OK
#pragma omp parallel
{
static int var2;
static bool initialized2;
#pragma omp threadprivate(var2, initialized2)
if (!initialized2) {
var2 = Initialize();
initialized2 = true;
}
}
}