언어/Basic C++

[Basic C++] #27_상수 표현식, constexpr

Hardii2 2022. 5. 21. 20:09

 

[Basic C++] #27_상수 표현식, constexpr

 

C++ 개발에서 까다로운 문법 혹은 특별한 의미를 갖는 부분에 대해 알아보겠습니다.

"전문가를 위한 C"의 10 항목, "C++의 까다롭고 유별난 부분들"에 해당하는 내용입니다.

 


 

Overview

 

  1. 개념

 

#0. 개념

1. 상수 표현식, constexpr?

const int getArraySize1() { reutrn 32; }
constexpr int getArraySize2() { return 32; }

int main()
{
    int myArray[getArraySize1()];	// 에러!!
    int myArray2[getArraySize2()];	// Ok!! 정상적으로 작동 합니다.
    return 0;
}

 

Details

 

  • C++에서 "상수 표현식"이란, 상수가 아닌 구문을 사용하면 에러가 발생하는 특정 상황에 "상수"로 취급되게끔 해주는 장치입니다.
  • 하지만, 함수를 constexpr을 사용해서 선언하기 위해 많은 제약 사항들을 고려해야 하기 때문에 주의해야 합니다.