Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
'identifier' : inicialização dinâmica de dados de 'thread' não é permitida em código gerido/WinRT
Observações
No código gerenciado ou WinRT, as variáveis declaradas usando o atributo modificador de classe de armazenamento __declspec(thread) ou o especificador de classe de armazenamento thread_local não podem ser inicializadas com uma expressão que requer avaliação em tempo de execução. Uma expressão estática é necessária para inicializar __declspec(thread) ou thread_local dados nesses ambientes de tempo de execução.
Example
O exemplo a seguir gera C2482 no código gerenciado (/clr) e no WinRT (/ZW):
// C2482.cpp
// For managed example, compile with: cl /EHsc /c /clr C2482.cpp
// For WinRT example, compile with: cl /EHsc /c /ZW C2482.cpp
#define Thread __declspec( thread )
Thread int tls_i1 = tls_i1; // C2482
int j = j; // OK in C++; C error
Thread int tls_i2 = sizeof( tls_i2 ); // Okay in C and C++
Para corrigir esse problema, inicialize o armazenamento thread-local usando uma expressão constante constexprou estática. Execute qualquer inicialização específica do thread separadamente.