Udostępnij za pośrednictwem


2.7.2 Udostępnianie danych klauzul atrybutów

Kilka dyrektyw przyjąć klauzule, które pozwalają użytkownikowi kontrolować udostępnianie atrybuty zmiennych na czas trwania tego regionu.Klauzule atrybut udostępniania dotyczą tylko zmienne w leksykalne zakres dyrektywy, na której znajduje się klauzuli.Nie wszystkie z następujących klauzul są dozwolone na wszystkich dyrektyw.Wykaz klauzule, które są prawidłowe, w szczególności dyrektywy są opisane z niniejszej dyrektywy.

Jeśli zmienna jest widoczna, gdy równoległego lub napotkania konstrukcja podziału pracy, a zmienna nie jest określony w klauzuli atrybut udostępniania lub threadprivate dyrektywa, następnie zmienna jest udostępniony.Zmienne statyczne, zgłaszane w ramach dynamicznego zakresu równoległych regionu są udostępnione.Przydzielona pamięć sterty (na przykład za pomocą malloc() w c lub C++ lub Nowy operatora w języku C++) jest udostępniony.(Wskaźnik pamięci, jednak może być prywatne lub współużytkowane.) Zmienne, dla których czas trwania składowania automatyczne zgłaszane w ramach dynamicznego zakresu równoległych regionu są prywatne.

Większość klauzule zaakceptować listy zmiennej argument, który jest rozdzielaną przecinkami listę zmiennych, które są widoczne.Zmienna odwołania w klauzuli udostępnianie danych atrybutu ma typ pochodnych od szablonu i nie istnieją żadne inne odwołania do zmiennej w programie, zachowanie jest niezdefiniowane.

Wszystkie zmienne, które pojawiają się w ramach dyrektywy klauzule muszą być widoczne.Klauzule może się powtarzać, w razie potrzeby, ale zmienna nie mogą być określone w klauzuli więcej niż jeden, z wyjątkiem, że zmienna może być określony w obu firstprivate i lastprivate klauzuli.

W poniższych sekcjach opisano klauzul udostępnianie danych atrybutu: