2011-07-28 2 views

답변

4

는 C++ ISO 규격은 § 15.1/3

가 스로인 표현식의 타입은 보이드 이외 불완전 형 또는 불완전한 타입에 대한 포인터 또는 참조 될 수 없다한다고 *, const void *, 휘발성 void * 또는 const 휘발성 void *. 이러한 제약과 15.3에서 언급 한 타입 매칭에 대한 제한을 제외하고, throw의 피연산자는 호출 (5.2.2)의 함수 인수 또는 return 문의 피연산자로 정확하게 취급됩니다.

이렇게하면 앞으로 선언 한 유형을 던지지 않는 한 원하는 것을 던질 수 있어야합니다.

EDIT : @Billy ONeal이 지적했듯이 유형은 복사 가능해야하며 이는 복사 생성자를 지원해야 함을 의미합니다.

+1

어쨌든 복사 생성자가 필요하다고 생각합니다. 15.1 단락 3 '예외 객체라는 초기화 객체가 초기화됩니다.' –

+0

@Billy ONeal- 지적 해 주셔서 감사합니다! 내 대답을 업데이트 할게. – templatetypedef

관련 문제