2.7.2.8 — prywatna kopia
Copyprivate klauzuli oferuje mechanizm do nadawania wartości z jednego członka zespołu do innych członków za pomocą prywatnej zmiennej.Jest zamiast używać wspólnej zmiennej wartości, gdy dostarczanie wspólnej zmiennej byłoby trudne (na przykład w rekursji, wymagających różnych zmiennej na każdym poziomie).Copyprivate klauzula może pojawić się tylko na pojedynczego dyrektywy.
Składnia copyprivate klauzuli jest w następujący sposób:
copyprivate(variable-list)
Efekt copyprivate klauzuli o zmiennych w jego liście zmiennej występuje po wykonaniu bloku strukturalne związane z pojedynczego konstruowania, i przed tych wątków w zespole opuściły bariery na końcu konstrukcji.Następnie w innych wątków w zespole, dla każdej zmiennej w listy zmiennej, tej zmiennej staje się definicją (tak, jakby przypisania) z wartością odpowiednią zmienną w wątku, który wykonywany konstrukcja structured bloku.
Ograniczenia do copyprivate klauzuli są w następujący sposób:
Zmienna, która jest określona w copyprivate klauzuli nie umieszcza się w prywatnego lub firstprivate klauzuli dla tego samego pojedynczego dyrektywy.
Jeśli pojedynczego w dyrektywie z copyprivate klauzuli okaże się, w zakresie dynamicznych regionu równolegle, wszystkie zmienne określone w copyprivate klauzuli musi być prywatnej w kontekście okalającego.
Zmienna, która jest określona w copyprivate klauzuli musi mieć dostępne kopii jednoznaczne operator przypisania.