다음 코드 고려 가상 함수 오버라이드 (override) 할 때 : 컴파일 할 때
class A
{
public:
virtual void f() throw (int) { }
};
class B: public A
{
public:
void f() throw (int, double) { }
};
, 그것은 파생 된 클래스
(auto_ptr과 같은) 다른 예외 중에서 C++ 11에서는 예외 사양이 더 이상 사용되지 않습니다. g ++ 4.8에서 다음 코드로 경고를받을 수있는 방법이 있습니까? struct F{
void foo() throw (int){}
};
int main()
{
}
이미 -Wall -pedantic -Wextra -Wdeprecated-
그렇다면 어떻게? 은 내가 method 만 SOMEException 슬로우 그래서 같은 class SOMEClass
{
public:
void method(void) throw (SOMEException);
virtual void pure_method(void) = 0;
};
로 회원 예외 사양을 제공하는 방법을 알고있다.
최근 다른 사람들이 구현 한 DLL이 있습니다. 내 응용 프로그램에서 사용해야합니다. 자신의 클래스의 헤더 파일에서 그들은 함수 선언 이제 void func1() throw (CCustomException);
내가 그것을 경고를 얻고 컴파일 기능을 표시하는 것을 제외하고 무시 C++ 예외 사양이는 _declspec (아니다 nothrow) 나는 MSDN
this answer에 따르면 예외 사양은 C++ 17에서 함수 유형의 일부가됩니다. 이는 많은 기능에 대한 예외 사양이 변경된다는 것을 의미합니까? noexcept 사양을 얻는 C 호환성 헤더의 기능? 어떤 표준 함수가 예외 사양을 C++ 17에서 noexcept으로 변경합니까? 편집 : 분명히 P0488R0, 표준 작업 초안에 2016년 10월 19일
나는 다음과 같은 예외가 g을 사용하여 ++하지만 무엇입니까 ++ 프로그램을 내 C를 실행하려고 : CRException 클래스 ..이 날 도와주세요 포함 OCL 네임 스페이스를 사용하고 "OCL :: CRException에 대한 소속 카테고리" .이 #ifndef VOIDSOFT_ADA2_LIND_HH
#define VOIDSOFT_ADA2_LIND_
질문이 적절하지는 않지만 최선을 다할 것입니다. 이것은 숙제 문제입니다. 숙제는 두 줄이 평행하거나 같으면 예외를 던져달라고 부탁합니다. 원래 코드는 내 교수가 제공하고 나의 일은 예외를 던질 수 있도록 수정하는 것입니다. line.h class RuntimeException{
private:
string errorMsg;
public:
Runtim
방금 C++ 11 표준 개정판에서 예외 사양이 사용되지 않습니다. 이전에 귀하의 기능이 무엇을 던질 수 있는지 지정하는 것은 좋은 습관이라고 생각했지만 분명히 그렇지 않았습니다. Herb Stutter's well-cited article을 읽은 후에 나는 예외적 인 사양이 그대로 구현 된 이유는 무엇이며, 왜위원회는 컴파일 타임에 확인하지 않고 대신