Предупреждение компилятора 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
}