[모던 C++] 컴파일 상수 constexpr
constexpr이란 constexpr은 C++11부터 지원되기 시작한 컴파일 상수이다. 11부터 시작해서 23에 이르기까지 constexpr은 그 지원 범위를 점차 늘려왔고, 많은 C++ 프로그래머로부터 각광을 받았다고 한다. 이 constexpr은 무엇이고, const와 무엇이 다른 것일까. constexpr, 혹은 컴파일 상수는, '컴파일 시간에 값을 결정하는 상수'라는 의미를 갖고 있다. 2, 3.0과 같은 상수를 생각해보자. 이 상수들은 런타임 도중 그 값이 변경되지 않는다. C 시절 #define NUMBER 5와 같이 작성하면, 이는 매크로라 하여서, 컴파일러가 자동적으로 NUMBER를 5로 바꾸어준다. 이때 NUMBER는 컴파일 도중에 그 값이 결정되지, 런타임 도중에 값이 5로 결정되는 ..