次の方法で共有


2.7.2.1 private

private 句は、変数リスト内にある変数をチーム内の各スレッドに対してプライベートであると宣言します。 private 句の構文は次のとおりです。

private(variable-list)

private 句で指定された変数の動作は次のとおりです。 自動ストレージ存続期間を持つ新しいオブジェクトが private コンストラクトに割り当てられます。 新しいオブジェクトのサイズと配置は、変数の型によって決まります。 この割り当ては、チーム内の各スレッドに対して 1 回だけ発生し、必要に応じて、クラス オブジェクトに対して既定のコンストラクターが起動します。それ以外の場合は、初期値は不定です。 変数によって参照される元のオブジェクトは、コンストラクトの入り口では不定値を持ち、コンストラクトの動的範囲内では変更できません。また、コンストラクトの出口では不定値を持ちます。

ディレクティブ コンストラクトの構文範囲内において、変数は、スレッドによって割り当てられている新しいプライベート オブジェクトを参照します。

private 句に対する制限は次のとおりです。

  • private 句で指定されているクラス型の変数は、アクセス可能な明白な既定のコンストラクターを持つ必要があります。

  • private 句で指定されている変数の型は、mutable メンバーのクラス型でない限り、const 修飾型にはなれません。

  • private 句で指定されている変数は、不完全型または参照型にはなれません。

  • parallel ディレクティブの reduction 句内の変数を、parallel コンストラクトにバインドされる work-sharing ディレクティブの private 句に指定することはできません。