Поделиться через


Предупреждение компилятора C4957

"cast" : явный приведение от "cast_from" к "cast_to" не является проверяемым

Замечания

В результате приведения будет создан недоступный для проверки образ.

Некоторые приведения являются безопасными (например, приведение static_cast вызывает выполнение пользовательских преобразований и приведение const_cast). При выполнении приведения safe_cast гарантированно создается проверяемый код.

Дополнительные сведения см. в разделе "Чистый и проверяемый код" (C++/CLI).

Параметр /clr:safe компилятора устарел в Visual Studio 2015 и не поддерживается в Visual Studio 2017.

Это предупреждение выдается в качестве ошибки, и его можно отключить с помощью директивы pragma warning или параметра компилятора /wd .

Пример

Следующий пример приводит к возникновению предупреждения C4957:

// C4957.cpp
// compile with: /clr:safe
// #pragma warning( disable : 4957 )
using namespace System;
int main() {
   Object ^ o = "Hello, World!";
   String ^ s = static_cast<String^>(o);   // C4957
   String ^ s2 = safe_cast<String^>(o);   // OK
}