Sdílet prostřednictvím


2.7.2.8 copyprivate

Copyprivate klauzule poskytuje mechanismus pro vysílání hodnotu z jednoho člena týmu k ostatním členům pomocí soukromé proměnné.Je alternativou k používání sdílené proměnné hodnoty při poskytování sdílené proměnné by bylo obtížné (například v rekurzi, vyžadující různé proměnné na každé úrovni).Copyprivate klauzule může objevit pouze na jednu směrnice.

Syntaxe copyprivate klauzule je takto:

copyprivate(variable-list)

Účinek copyprivate klauzule proměnných v jeho seznamu proměnné dojde po spuštění strukturované bloku přidružené jednu konstrukce, a před všechny podprocesy v týmu opustily bariéry na konci konstruktu.Potom všechny podprocesy v týmu pro každou proměnnou v seznamu proměnné, tato proměnná se stane definované (jako přiřazení) s hodnotou odpovídající proměnné v podprocesu, který provedeny konstrukci strukturované bloku.

Omezení copyprivate klauzule jsou následující:

  • Proměnná, která je určena v copyprivate klauzule nesmějí objevit v soukromé nebo firstprivate klauzule pro stejné jeden směrnice.

  • Pokud jeden směrnice s copyprivate klauzule vyskytne dynamického rozsahu paralelní regionu, všechny proměnné uvedené v copyprivate doložka musí být soukromé v ohraničujícím kontextu.

  • Proměnná, která je určena v copyprivate doložka musí být přístupné jednoznačné kopie operátor přiřazení.