컴파일러 /Za
옵션을 사용하여 컴파일러가 엄격하게 표준 ISO C++를 사용하도록 lanquage 확장을 사용하지 않도록 설정했습니다. 다음과 같은 경고 메시지가 나타나는 예제 인터페이스 클래스입니다.경고 C4180 : 함수 유형에 적용되는 한정자는 의미가 없습니다. ignored
경고 C4180 : 함수 유형에 적용되는 한정자는 의미가 없습니다. 내가 disapears 경고, CONST를 제거하면 는, 함수의 반환 형식에
그것은 const를 규정에 관한 무시하지만 난 싶지하지 neather 내가 다시 lanqage의 extenstions을 사용하려면, 그렇게.
내 질문은 : 경고가 합리적입니까? 그렇다면 pragma를 사용하여 경고를 사용하지 않겠지 만이 경고가 "false positive"인지 확인하고 싶습니다.
다음 클래스는 올바른 ANSI ISO C++ Isn'it입니까? 그래서 경고는 무력화되어야합니까?
class IBet
{
public:
IBet() { };
virtual ~IBet() = 0 { };
virtual const float parentChips() const = 0; // Warning C4180
virtual const short parentChilds() const = 0; // Warning C4180
// ...
};
이 경고는 by-value 반환 유형을 'const'로 지정하는 것이 의미가 없다는 의미에서 유효합니다. 그것이 유효한 ANSI C++이든 아니든, 나는 확실하지 않습니다. –
SO 및 다른 검색 엔진에서 쉽게 검색 할 수 있도록 제목을 변경합니다. – iammilind
이 경고가'/ Za'에 의해 * 일으켰다 고 제안합니다. 스위치를 제거하면 실제로 사라 집니까? –