SunOS 5.11 (Solaris 11.3)에서 Sun Studio 12.3에서 작업하고 있습니다. 그것 제공하는 가짜 경고 :가짜 "<function>은 값을 반환 할 것으로 예상됩니다"라는 경고?
"<file.h>", 라인 1 : 경고 : "< 기능 >은"값을 반환 할 것으로 예상된다.
이 함수는 기본 클래스 인터페이스의 일부이며 그렇게 보입니다. 기본 클래스 인터페이스 만 언급하면 "왜 그렇게 할 수 있습니까?"라는 토론을 피할 수 있습니다. 아래와 같은 비 멤버 함수로 트리거 할 수 있습니다.
int foo()
{
throw runtime_error("Not implemented");
}
비슷한 문제가 있음을 발견했습니다. 예를 들어, Xapian-core 변경 로그 상태 : 그것은 "슬로우"문 끝나는 기능을 위해 화재로
은
- 함은, 일의 C++
컴파일러에서 경고 "값을 반환 할 것으로 예상된다". 정품
인스턴스는 경고 기능이 뛰어난 컴파일러가 포착합니다.
SunStudio C++ compiler pragma to disable warnings에 따르면, 나는 -erroff=voidretw
를 사용할 수 있습니다. 나는 유효한 발견을 억제 할지도 모르기 때문에 -erroff=voidretw
를 염려한다. 또한 #pragma
으로 가면 사용자 코드로 상호 수분되는 것을 피하기 위해 푸시하고 팝업해야합니다. Sun Studio에서 경고 상태를 푸시하고 팝하는 방법을 모르겠습니다.
내 질문은 Sun Studio에서 헤더의 한 기능에 대한 경고를 어떻게 비활성화합니까? 내가 중복으로이를 닫 투표려고 생각 How to silence 'The last statement should return a value' warning? :
이 메시지가 다른 경우에도 중복 것 같습니다.
과 기능의 종류를 표시 할 수 있습니다;'은'throw' 후. 물론 다른 컴파일러는 도달 할 수없는 코드에 대해 경고 할 것이므로 일부 Sun Studio 전용'# ifdef'로 둘러싸 야합니다. – Praetorian
아무 것도 반환하지 않고 단순히 예외를 발생시키지 않으려면 왜 메서드를 void foo로 변경해야합니까?(). – sagar
@sagar - 인터페이스입니다. 파생 클래스는 값을 반환합니다. – jww