컴파일러 경고 C4957
'cast': 'cast_from'에서 'cast_to'로의 명시적 캐스트를 확인할 수 없습니다.
설명
캐스트로 인해 확인할 수 없는 이미지가 발생합니다.
일부 캐스트는 안전합니다(예: 사용자 정의 변환을 트리거하는 static_cast
및 const_cast
). safe_cast 는 확인할 수 있는 코드를 생성합니다.
자세한 내용은 순수 및 확인 가능한 코드(C++/CLI)를 참조하세요.
/clr:safe 컴파일러 옵션은 Visual Studio 2015에서 더 이상 사용되지 않으며 Visual Studio 2017에서는 지원되지 않습니다.
이 경고는 오류로 발생하며 warning pragma 또는 /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
}