난 정말 최고야 멋있어
const , constexpr 본문
const => 그냥 상수
constexpr => 컴파일 타임 상수 , 즉 컴파일 시에 컴파일러가 값을 결정 할 수 있는 값이어야 한다.
함수의 매개변수로 쓰이는 const 파라미터 같은 경우는 constexpr이 될 수 없다
const 가 조금 더 넓은 의미라고 볼 수 있다
+ constexpr 함수 :
함수의 반환 형이 컴파일 시간에 결정 될 수 있는 함수
ex))
constexpr int multiply_by_two(int x)
{
return 2*x;
}
constexpr 은 #define 전처리기와 비슷한면이 꽤 많은 것 같다
다른점이 있다면..
constexpr 함수는 VS컴파일러 기준 런타임 도중에 명확한 객체가 있지만,
#define으로 정의한 매크로는 상수값을 나타낸다..
#define MUL2(x) x*2
multiply_by_two