Copyprivate de 2.7.2.8
La cláusula de copyprivate proporciona un mecanismo para utilizar una variable privada para propagar un valor de un miembro de un equipo a los demás miembros.Es una alternativa a utilizar una variable compartida por valor cuando proporcionar una variable tan compartida sería difícil (por ejemplo, en una recursividad que requiere otra variable en cada nivel).La cláusula de copyprivate sólo puede aparecer en la directiva de solo .
La sintaxis de la cláusula de copyprivate es la siguiente:
copyprivate(variable-list)
El efecto de la cláusula de copyprivate en las variables de la variable-lista aparece después de la ejecución del bloque estructurado asociado con la construcción de solo , y antes de que los subprocesos cualquiera de los del equipo hayan dejado la barrera al final de la construcción.A continuación, en los demás en el equipo, para cada variable de la variable-lista, que la variable esté definido (como si por asignación) con el valor de la variable correspondiente en el subproceso que ejecutó el bloque estructurado de construcción.
Restricciones de la cláusula de copyprivate son los siguientes:
una variable que se especifica en la cláusula de copyprivate no debe aparecer en una cláusula de private o de firstprivate para la misma directiva de solo .
Si una directiva de solo con una cláusula de copyprivate se encuentra en la extensión dinámica de una región paralela, todas las variables especificadas en la cláusula de copyprivate deben ser privados en el contexto envolvente.
Una variable que se especifica en la cláusula de copyprivate debe tener un operador de asignación inequívocamente accesible de copia.