[c++] noexcept와 표준 라이브러리 함수
C++에서 noexcept
는 함수가 예외를 발생시키지 않음을 나타내는 키워드입니다. noexcept
키워드를 사용하면 컴파일러가 구문 및 논리 오류를 찾을 수 있어 코드 안정성을 향상시킬 수 있습니다.
noexcept 키워드의 사용
noexcept
키워드를 사용하여 함수가 예외를 발생시키지 않음을 명시적으로 나타낼 수 있습니다.
void myFunction() noexcept {
// 예외를 발생시키지 않는 코드 작성
}
표준 라이브러리 함수의 noexcept 선언
표준 라이브러리의 함수 중 일부는 noexcept
키워드를 사용하여 예외를 발생시키지 않음을 나타냅니다. 예를 들어, C++ 표준 라이브러리의 std::vector
의 몇몇 멤버 함수는 noexcept
로 선언되어 있습니다.
std::vector<int> myVec;
//...
myVec.push_back(10); // noexcept 함수 호출
myVec.at(0); // noexcept 함수 호출
myVec.clear(); // noexcept 함수 호출
효율성 향상
noexcept
로 표시된 함수를 호출하는 경우, 컴파일러는 예외 처리 코드를 생성하지 않아 속도와 메모리 사용량 면에서 성능 향상에 도움이 됩니다.
요약
noexcept
는 함수가 예외를 발생시키지 않음을 명시적으로 나타내는 키워드로, 코드의 안정성을 높이고 효율성을 향상시키는 데 도움을 줄 수 있습니다. 표준 라이브러리의 몇몇 함수는 noexcept
로 선언되어 있어 예외 처리에 대한 이점을 누릴 수 있습니다.
참고문헌:
- https://en.cppreference.com/w/cpp/language/noexcept_spec
- https://en.cppreference.com/w/cpp/container/vector