컴파일 타임 상수 constexpr 변수 이름 앞에 g_ prefix를 붙여도 될까?
-> 추천하지 않는다.
이건 코딩 스타일/컨벤션의 문제인데, 몇 가지 관점에서 볼 수 있다.
보통 g_는 global variable이라는 의미로 사용된다.
그래서 많은 개발자들이 g_는 변경 가능한 전역 변수 (mutable global state)에만 붙인다고 생각한다.
❓ 그런데 constexpr은?
constexpr은 컴파일 타임 상수이다.
*불변 (immutable)*이고, 전역 상태의 위험성도 없다.
즉, 일반적인 "전역 변수"와는 의미가 다르다.
constexpr은 컴파일 타임 상수이다.
*불변 (immutable)*이고, 전역 상태의 위험성도 없다.
즉, 일반적인 "전역 변수"와는 의미가 다르다.
그래서 g_를 붙이면 오히려:
"이 변수는 프로그램 어딘가에서 변경될 수 있는 글로벌 상태인가?"
처럼 오해할 여지가 있다.
"이 변수는 프로그램 어딘가에서 변경될 수 있는 글로벌 상태인가?"
처럼 오해할 여지가 있다.
만약 프로젝트 컨벤션에서 g_를 mutable 전역 변수에만 쓴다면,
constexpr에는 안 붙이는 게 좋다.
constexpr에는 안 붙이는 게 좋다.