[C++] 예외처리 한정자 키워드 : noexcept

//예외를 반환하지 않는다.
int func1(int a, int b, int c) noexcept {
    ...
}

//예외를 반환할 수 있다.
int func2(int a, int b, int c) noexcept(false) {
    ...
}


예외처리에 관해서 한정자 noexcept를 작성하면 얻는 이점은 다음과 같다.

(1) 예외 처리 여부를 바로 알 수 있다.

(2) Strong exception guarantee (강한 예외 보증)
    copy semantics가 아닌 move semantics로 처리한다.

(3) Performance improvement (성능 향상)
    해당 함수가 예외처리를 무조건적으로 하지 않는다고 가정하므로
    예외를 반환할 수 있는 상황에 대한 고려를 하지 않는다. (여분공간X)

댓글

이 블로그의 인기 게시물

[PS] BOJ 20543번 폭탄 던지는 태영이

프로그래밍에서 실수형의 부정확성

프로그래머스 2019 윈터코딩 온라인 테스트를 보았다. (풀이)