C++11부터 예외 사양을 선언하는 데 사용되는 noexcept
키워드가 도입되었습니다. 이 키워드는 함수가 예외를 발생시키지 않음을 나타내는 데 사용됩니다. 또한, noexcept 사양을 지정함으로써 컴파일러에게 해당 함수가 예외를 발생하지 않는다는 정보를 제공할 수 있습니다.
noexcept 예약어를 사용하는 방법
noexcept
키워드는 함수 선언 시 함수 이름 뒤에 붙어 사용됩니다. 아래는 noexcept
를 사용하는 간단한 예제입니다.
void myFunction() noexcept {
// function body
}
noexcept 사양과 이점
noexcept
를 사용하면 컴파일러가 최적화를 수행할 수 있습니다. 또한, 이 예약어를 사용하여 예외 사양을 명시적으로 지정함으로써 코드의 안정성을 높일 수 있습니다. noexcept
키워드를 사용함으로써 함수가 예외를 발생시키지 않는다는 사실을 명시적으로 나타내어 사용자가 해당 함수를 호출할 때 예외 처리에 대한 고려를 덜어줄 수 있습니다.
noexcept와 예외 사양
함수의 예외 사양은 throw()
사양과 noexcept
사양으로 지정할 수 있습니다. throw()
사양은 C++11에서부터 사라지고, noexcept
사양이 그 역할을 대신하게 되었습니다. 기존의 throw()
사양과 달리 noexcept
는 예외를 발생시키지 않는다는 사실을 보장합니다.
noexcept의 주의점
noexcept
키워드를 사용할 때에는 함수 내부에서 예외를 발생시키지 않음을 확실하게 보장해야 합니다. 만약 noexcept
로 지정된 함수에서 예외가 발생한다면 std::terminate
가 호출되어 프로그램이 끝나게 됩니다.
이상으로 noexcept
키워드와 함수의 예외 사양에 대한 간단한 소개를 마치겠습니다.