C++/g_는 mutable 전역 변수에만 쓴다


컴파일 타임 상수 constexpr 변수 이름 앞에 g_ prefix를 붙여도 될까?

-> 추천하지 않는다.

이건 코딩 스타일/컨벤션의 문제인데, 몇 가지 관점에서 볼 수 있다.

보통 g_는 global variable이라는 의미로 사용된다.

그래서 많은 개발자들이 g_는 변경 가능한 전역 변수 (mutable global state)에만 붙인다고 생각한다.

❓ 그런데 constexpr은?
constexpr은 컴파일 타임 상수이다.
*불변 (immutable)*이고, 전역 상태의 위험성도 없다.
즉, 일반적인 "전역 변수"와는 의미가 다르다.

그래서 g_를 붙이면 오히려:
"이 변수는 프로그램 어딘가에서 변경될 수 있는 글로벌 상태인가?"
처럼 오해할 여지가 있다.


만약 프로젝트 컨벤션에서 g_를 mutable 전역 변수에만 쓴다면,
constexpr에는 안 붙이는 게 좋다.

대신 다음 중 하나를 추천한다.


이 글에는 0 개의 댓글이 있습니다.