2.7.2.3 lastprivate
lastprivate 句は、private 句が提供する機能のスーパーセットを提供します。lastprivate 句の構文は次のとおりです。
lastprivate(variable-list)
variable-list に指定される変数は private 句のセマンティクスに従います。lastprivate 句が work-sharing コンストラクトを識別するディレクティブに現れると、関連付けられているループが順番に実行された場合の最後の反復処理または構文的に最後の section ディレクティブの各 lastprivate 変数の値が、その変数の元のオブジェクトに割り当てられます。for または parallel for の最後の反復処理、あるいは sections または parallel sections ディレクティブの構文的に最後のセクションによって値が割り当てられない変数については、その作成後の値は未定義になります。割り当てられなかったサブオブジェクトについても、作成後の値は未定義です。
lastprivate 句に対する制限は次のとおりです。
private に対するすべての制限が適用されます。
lastprivate として指定されているクラス型の変数は、アクセス可能な明白なコピー代入演算子を持つ必要があります。
並行領域内部でプライベートな変数、または parallel ディレクティブの reduction 句内の変数を、parallel コンストラクトにバインドされる work-sharing ディレクティブの lastprivate 句に指定することはできません。