[c++] noexcept와 상수식 함수
C++ 프로그래밍에서는 안전성과 예측 가능성을 높이기 위해 noexcept
키워드와 상수식 함수를 사용할 수 있습니다. 이들은 코드의 안정성을 확보하고 성능을 최적화하는 데 도움이 됩니다.
noexcept 키워드
noexcept
는 함수가 예외를 발생시키지 않음을 나타내는 키워드입니다. 이를 사용하여 컴파일러가 예외 처리 코드를 최적화하고 속도를 개선할 수 있습니다.
void myFunction() noexcept {
// 예외를 발생시키지 않는 함수 내용
}
위 예제에서 noexcept
는 myFunction
이 예외를 발생시키지 않음을 나타냅니다. 이렇게 하면 컴파일러가 해당 함수를 최적화하여 예외 처리 코드를 건너뛰게 됩니다.
상수식 함수 (constexper)
C++11 이상에서는 상수식 함수를 나타내는 constexpr
키워드를 사용할 수 있습니다. 이를 통해 컴파일 시간 상수 평가 및 최적화가 가능하며, 런타임 속도를 향상시킬 수 있습니다.
constexpr int square(int x) {
return x * x;
}
위 예제에서 constexpr
는 square
함수가 컴파일 시간에 계산될 수 있는 상수식 함수임을 나타냅니다.
이를 통해 다음과 같이 상수식 함수를 이용한 컴파일 시간에 값이 결정되는 경우에 효과적으로 활용할 수 있습니다.
const int result = square(5); // 컴파일 시간에 25로 결과를 결정
이와 같이 noexcept
와 constexpr
를 적절히 활용하여 C++ 코드의 안정성과 성능을 향상시킬 수 있습니다.
위에서 다룬 내용은 C++ 공식 문서를 참고하여 작성되었습니다.