pragma warning 어떻게 사용하는 건가요?

dltkddyd의 이미지

pragma warning이 도대체 뭔가요? 아래와 같이 하면, 컴파일시 4514에 해당하는 오류가 뜨면서 컴파일이 안 되던데요. 메서드를 호출하는 부분이 없을 경우에 해당하는 분류번호가 4514인 것으로 보이는데, 맞나요?

#pragma warning(error:4514)
class A
{
   public:
      void func()   // C4514, remove the function to resolve
      {
      }
};
 
int main()
{
}

그런데 저 pragma를 다음과 같이 고치면

#pragma warning(default:4514)

또는 아래와 같이 고치면

#pragma warning(disable:4514)

, 컴파일은 되더군요. default라는 것은 번호와 관련된 기본동작을 켜는 것으로 아는데요. 그러면 컴파일 되면서 기본 메시지가 출력돼야 하는 것 아닌가요? 그 아래 것으로 수정하면 기본 메시지 출력되면 안되는 것이고요. 도대체 error, default, disable이 컴파일시 어떤 역할을 하는 것인지 궁금합니다.