2.7.2.8 copyprivate
O copyprivate cláusula fornece um mecanismo para usar uma variável particular para difundir um valor de um membro de uma equipe para os outros membros. É uma alternativa ao uso de uma variável compartilhada para o valor ao fornecer uma variável compartilhada seria difícil (por exemplo, em uma recursão exigindo uma variável diferente em cada nível). O copyprivate cláusula só pode aparecer à único diretiva.
A sintaxe do copyprivate cláusula é da seguinte maneira:
copyprivate(variable-list)
O efeito do copyprivate cláusula nas variáveis em sua lista de variável ocorre após a execução do bloco estruturado associado a único construir, e antes de qualquer um dos threads na equipe ter deixado a barreira no final da construção. Em seguida, em todos os outros segmentos da equipe, para cada variável no variável-list, essa variável se torna definida (como se por atribuição) com o valor da variável correspondente em uma thread que executou a bloco estruturada da construção.
Restrições para o copyprivate cláusula são os seguintes:
Uma variável que é especificada na copyprivate cláusula não deve aparecer em um particular ou firstprivate cláusula para o mesmo único diretiva.
Se um único diretiva com um copyprivate cláusula é encontrada na extensão dinâmica de uma região paralela, todas as variáveis especificadas na copyprivate cláusula deve ser particular no contexto de delimitador.
Uma variável que é especificada na copyprivate cláusula deve ter um operador de atribuição de cópia inequívoca acessível.