delete
이 불완전한 형식의 포인터에 적용될 경우 Visual C++에 C4150 warning이 있습니다.C++에서 불완전한 유형을 삭제해도 오류가 발생하지 않는 실제 사례가 있습니까?
이러한 경우에는 표준에 따라 정의되지 않은 동작이 발생합니다. Visual C++에서 AFAIK을 사용하면 기본값이 operator delete()
이고 아무런 소멸자도 호출되지 않으므로 수많은 버그가 발생할 수 있습니다.
이제 Visual C++에서 #prarma warning(error : 4150)
을 사용하여 해당 경고를 오류로 처리 할 수있었습니다. 거기에 이유는 Visual C++에서 기본적으로 경고 및 오류가 아닌 것 같아요.
실생활 코드에서 이러한 사례를 허용하고 싶습니다. 왜 나는 경고를 컴파일러 오류로 전환하지 않겠습니까?
불완전한 유형으로 '무효'개수가 있습니까? 그렇다면 [this] (http://stackoverflow.com/questions/6172232/is-it-undefined-behaviour-to-delete-a-null-void-pointer)와 관련있을 수 있습니다. :) – Xeo
Microsoft가 제품과 관련하여 무엇을 의미하는지 결코 알 수 없습니다. – Dani
사소한 소멸자가있는 클래스일까요? –