
C++ constexpr
·
C++
컴파일 시 값 평가를 강제하기 위하여 탬플릿 메타프로그래밍 남용 -> 보통 컴파일러가 자발적으로 평가해주지만 어떤 코드로 인하여 컴파일러가 해주지 않는 경우가 있다. => constexpr는 이를 해달라는 프로그래머의 의도를 보여주는 방식이다.(비슷한 예시로 inline이 있다) 컴파일 도중 "반드시" 값이 결정되게 하려면 constexpr변수를 쓸 것 문자열 해쉬를 도중에 만들 수 있다면? -> 문자열 비교에 드는 런타임 비용은 언제나 O(1)이 된다. -> constexpr을 써서 컴파일 타임에 문자열 해쉬를 만들 수 있게 됐다! 참고로 const와 constexpr은 다르다. 변수의 경우 const => 변경을 불허 constexpr => 컴파일 시 평가를 해달라 하지만 둘 다 const다 즉 co..