noexcept1 예외를 방출하지 않을 함수는 noexpect로 함수를 noexcept로 선언할 것인지 여부는 인터페이스 설계상 문제이다. 즉, 함수 호출자는 noexcept 여부에 의존할 수 있다는 것을 뜻한다. 예외를 방출하지 않음이 확실한 함수를 선언할 때 noexcept를 사용하지 않는 것은 인터페이스 명세가 허술함을 의미한다. 예외를 받게 되는 일이 없음을 약속하기 위한 표현법이다. int f(int x) throw();// C++98 버전 int f(int x) noexcept;// C++11 버전 실행 시점에서 예외가 f 바깥으로 나가게 되면 f의 에외 명세에 위반된다. C++98에서는 예외 명세가 위반되면 호출 스택이 f를 호출한 시점에 도달할 때까지 풀리며(unwind), 그 지점에서 몇 가지 동작이 취해진 후 종료된다(terminate). C++11.. 2020. 7. 7. 이전 1 다음