2012-01-07 2 views
5

this question에 오류가있는 컴파일 타임에 솔루션을 표시 한 후, 대신 경고를 받고 컴파일을 완료 할 수 있는지 궁금해했습니다. 실제로 질문에 지정되어 있습니다.다른 컴파일러에서 지속적으로 경고가 트리거됩니까?

일반적으로 진단은 컴파일러에 따라 다르지만 일부 코드에서는 존재하지 않는 멤버에 액세스하거나 불완전한 유형의 객체를 인스턴스화하려고 시도하는 등의 오류가 발생하게됩니다.

컴파일러간에 큰 차이가 나는 경향이 있기 때문에 경고의 경우에도 마찬가지입니다. GCC로 트리거 된 경고가 Clang과 함께 발생한다고 가정하는 것은 합리적이지만 Visual C++에서도 마찬가지입니다.

질문 :
언급 한 세 가지 컴파일러 모두에서 어떤 경고가 지속적으로 발생합니까?

/W3 (VC++) 및 -Wall (GCC & Clang)이 가정 될 수 있습니다.


이 질문에 유용 할뿐만 아니라 사용자 정의 메시지에 대한 경고를 트리거하는 데 유용 할 수 있습니다.

+1

왜 GCC/Clang에서'-Wall'을 사용하는 동안 MSVC에서'/ W3'을 사용합니까? MSVC는 추가 경고 수준으로'/ W4' 및/Wall을 지원합니다. –

+0

@Cody : 저는 이것을 컴파일러의 "기본"설정으로 생각합니다. 경고가 표시되도록 경고 수준을 변경하지 않으려합니다. '/ W3'은 Visual Studio의 실제 기본값이고'-Wall'도 기본값으로 볼 수 있습니다. – Xeo

답변

2

이 MSVC, GCC, 그리고 연타에 작동합니다 : 아직

#pragma message("hello world") 

매우 유용하지,하지만 작동합니다. 도

이 촬상 경고 :

  • 않는 가변
  • 않는 라벨
  • 큰 값, 예를 들어 (1 < < 128)
+0

템플릿을 표시 할 수 없습니다. (그리고 지금은 경고로 간주되지 않습니까? – Xeo

+0

@ Xeo 그래도 작동하도록 보장되어 있지만 경고는 그리 많지 않습니다. – Pubby