Aviso do compilador C4958
'operation': a aritmética de ponteiro não é verificável
Comentários
Usar a aritmética de ponteiro produzirá uma imagem não verificável.
Para obter mais informações, consulte Código Puro e Verificável (C++/CLI).
A opção do compilador /clr:safe foi preterida no Visual Studio 2015 e não tem suporte no Visual Studio 2017.
Esse aviso é emitido como um erro e pode ser desabilitado com o aviso pragma ou a opção do compilador /wd.
Exemplo
O seguinte exemplo gera o erro C4958:
// C4958.cpp
// compile with: /clr:safe
// #pragma warning( disable : 4958 )
using namespace System;
int main( ) {
Int32 arr[] = new Int32[10];
Int32* p = &arr[0];
p++; // C4958
}
O compilador implementa operações de matriz com aritmética de ponteiro. Portanto, as matrizes nativas não são verificáveis; em vez disso, use uma matriz CLR. Para obter mais informações, confira matriz.
O seguinte exemplo gera o erro C4958:
// C4958b.cpp
// compile with: /clr:safe
// #pragma warning( disable : 4958 )
int main() {
int array[5];
array[4] = 0; // C4958
}