Sdílet prostřednictvím


2.7.2 Sdílení dat atribut doložky

Několik směrnic přijímat doložky, které umožňuje uživateli řídit sdílení atributů proměnné pro dobu trvání regionu.Sdílení atribut doložky platí pouze pro proměnné lexikální rozsah směrnice, které se zobrazí v klauzuli.Všechny tyto doložky jsou povoleny na všech směrnic.Seznam klauzulí, které jsou platné pro zvláštní směrnice, jsou popsány směrnice.

Pokud proměnná je viditelný při paralelní nebo je zjištěna sdílení práce konstrukce a proměnné není zadán v klauzuli atribut sdílení nebo threadprivate směrnice, pak proměnné je sdílený.Statické proměnné deklarované v rámci dynamického rozsahu paralelní oblasti jsou sdílené.Přidělené paměti haldy (například pomocí malloc() v c nebo C++ nebo nové operátor v jazyce C++) je sdílena.(Ukazatel k této paměti však může být soukromých nebo sdílených.) Proměnné s dobou trvání automatického ukládání deklarována v rámci dynamického rozsahu paralelní oblasti jsou soukromé.

Většina klauzulí přijmout seznamu proměnné argument, který je čárkami oddělený seznam proměnných, které jsou viditelné.Odkaz na proměnnou v klauzuli atribut sdílení dat má typ odvozený z šablony a neexistují žádné jiné odkazy na tuto proměnnou v programu, chování není definován.

Všechny proměnné, které se zobrazují v rámci ustanovení směrnice musí být viditelné.Doložky mohou podle potřeby opakují, ale žádné proměnné lze zadat více klauzulí, s výjimkou, že proměnné lze zadat v obou firstprivate a lastprivate klauzule.

Následující oddíly popisují klauzule atribut sdílení dat: