Freigeben über


2.7.2 Datenfreigabe-Attributklauseln

Mehrere Direktiven akzeptieren Klauseln, die einem Benutzer ermöglichen, die Freigabe von Attributen von Variablen für die Dauer des Bereichs zu steuern. Freigeben klauseln Attribut gelten nur für Variablen im lexikalischen Wertebereich der Direktiven an, auf denen die Klausel wird. Nicht alle nachfolgenden Klauseln sind auf allen Direktive ermöglicht. Die Liste der Klauseln, die für bestimmte - Direktive gültig sind, werden mit der Direktive beschrieben.

Wenn eine Variable sichtbar ist, wenn eine Ähnlichkeit oder Arbeitsteilungs konstrukt unterbrochen wird und die Variable nicht in einer Freigabe oder clause Attribut threadprivate-Direktive angegeben ist, wird die Variable freigegeben. Die statischen Variablen, die innerhalb des dynamischen Wertebereichs eines parallelen Bereichs deklariert wurden, werden freigegeben. Heap belegter Speicher (z. B. mithilfe malloc () in C oder C++ oder des Operators neu C++) wurde aufgehoben. (Der Zeiger auf diesen Speicher kann jedoch privat oder freigegeben sein.) Variablen mit dauer die automatische Speicherung dynamischer, die innerhalb des Wertebereichs eines parallelen Bereichs deklarierter sind privat.

Die meisten Klauseln akzeptieren ein Variable Liste-Argument, das eine durch Trennzeichen getrennte Liste von Variablen ist, die sichtbar sind. Wenn eine Variable, die in eine Datenfreigabe Attribut für clause verwiesen wird, einen Typ aufweist, der aus einer Vorlage abgeleitet ist und keine weiteren Verweise auf den vorhanden ist, der im Programm variabel ist, ist das Verhalten nicht definiert.

Alle Variablen, die innerhalb der Klauseln angegeben werden, müssen sichtbar sein. Klauseln nach Bedarf wiederholt werden, aber keine Variable wurde in mehr als einer Klausel angegeben, außer dass eine Variable kann in firstprivate und in einer lastprivate-Klausel angegeben werden.

In den folgenden Abschnitten werden die Datenfreigabe Attribut für klauseln: