2011-01-20 5 views
10

의 I 가끔 내 학생들의 코드에서 볼 패턴의 단순화 된 버전은 다음과 같습니다특정 경고를 오류로 처리 할 수 ​​있습니까?

bool foobar(int a, int b) 
{ 
    if (a < b) return true; 
} 

실제 코드는 물론, 더 복잡하다. Visual Studio에서 경고 C4715 (모든 제어 경로가 값을 반환하는 것은 아니며 )를보고합니다. 모든 경고 C4715를 오류로 처리하고 싶습니다. 그게 가능하니?

+4

확실히 모든 경고를 오류로 처리해야합니다. :) – GManNickG

+0

@GMan : 일반적인 경우에는 동의하지만. 때때로 특정한 것들을 할 수 있어야합니다. –

답변

34

트릭을해야합니다 : #pragma warning (error: 4715).
또는 /we4715 명령 줄 옵션 (/w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (Warning Level) (Tom Sigerdas의 호의) 참조).

+0

'pragma'가 프로젝트에서 개수를 계산하기 위해 모든 파일에 있어야합니까? – TankorSmash

+2

설명서 : [/ w,/Wn,/WX,/Wall,/wln,/wdn,/wen,/won (경고 수준)] (https://msdn.microsoft.com/en-us/library/thxezb7y) .aspx) –

+0

@TomSirgedas 설명서 링크를 이용해 주셔서 감사합니다. –

2

컴파일러 경고 수준을 Visual Studio에서 수준 4로 설정하면 모든 경고가 오류로 처리됩니다. 어쨌든 경고없이 오류없이 학생들이 코드를 컴파일하게하는 것이 좋습니다. 또한 :/WX 컴파일러 옵션을 켜십시오.

+2

아니요. 네가 말하지 않으면 안된다. 두 가지를 모두 설정하는 것이 좋지만 4 단계로 설정하면 경고시 오류가 발생하지 않습니다. –

+0

물론'/ WX' (경고를 오류로 처리)해야합니다. – bobbogo

+0

/WX 옵션에 대해 언급하는 것을 잊어 버렸습니다. 수정할 수정. –

1

예,/we4715는 저에게 효과적입니다. 어쨌든 Visual Studio 2013에서는 UI의 프로젝트 설정 -> 구성 속성 -> C/C++ -> 고급 -> 특정 경고를 오류로 처리합니다. "4715"를 추가하십시오. 그래, 그게 미친 짓이야, 그들은 C++ 표준에서 무엇을 생각하고 있니? 어쩌면 어떤 (나쁜) 레거시 코드가 필요할 수도 있습니다. 적어도 수정 사항이 있습니다.

문서 : http://msdn.microsoft.com/en-us/library/thxezb7y.aspx

그리고 네, 해당 페이지는 VS2013에 대한 잘못된 UI 속성을 나열합니다. MSDN이 굉장하기 때문에!

관련 문제