david's daily developer note

[C,C++] East Const 본문

[Develop] Native/C++ , C

[C,C++] East Const

mouse-david 2018. 12. 20. 16:58
728x90

East Const

 

CppCon 2018에서 John Kalb께서 East Const를 쓰라고 목소리를 내셨다..

https://www.youtube.com/watch?v=fv--IKZFVO8&feature=share

 

East Const는 변수명 우측... 정확하게는 변수 혹은 포인터 앞에... const 한정자를 작성한다는 의미이다.

const int a = 0;
int const a = 0; //East Const

컴파일러 구문분석에 유리하여 컴파일 시간이 줄어든다거나 기능적인 차이가 있는건가? 라는 생각으로 파고 들었지만
단순히 논리적, 직관적, 단순함에 대한 언급만 있었다.
이해되지 않았다. 아직도 실력자들끼리는 의견이 분분한것같다. 키워드 자체가 모호하니까~

const 한정자와 관련한 CppCon의 다른 영상들을 찾아보는데,
예제들이 모두 East Const 스타일로 작성되어 있었다.
주변의 개발자 지인들도 출처가 해외인 오픈 소스에는 East Const 스타일이 꽤 많이 보인다고 하였다.

나는 다음의 예제로 논리적, 직관적, 단순함을 약간.. 개똥같이 이해할 수 있었다.

1과 2는 a변수의 값이 상수가 된다. 크게 어렵지 않다... 어색할 뿐..

3과 4는.. 동일한 결과로 포인트와 값이 모두 상수가 된다. 
여기서 3이 살짝 모호하다. 물론 반복적으로 학습되어 결과를 알고는 있다.
하지만 4의 경우에서 const 우측의 * 가 const 우측의 a가 상수가 된다는 표현으로는 조금 더 직관적으로 보인다....

.....?

혹시 이런 느낌이..? John Kalb이 말하는 논리적, 직관적, 단순함일까...

어쨋든....
East Const란 주제로 잠시나마 팀원들과 즐겁게 대화해본것 같다. 

 

https://arne-mertz.de/2018/05/trailing-return-types-east-const-and-code-style-consistency/

http://slashslash.info/2018/02/a-foolish-consistency/

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rl-const

 

728x90

'[Develop] Native > C++ , C' 카테고리의 다른 글

[C++] std::transform  (0) 2022.11.06
[C++] 최대값, 최소값  (0) 2022.11.06
[C,C++] Magic Static (Dynamic Initialization and Destruction with Concurrency)  (0) 2018.12.19
[C,C++] __func__  (0) 2018.12.19
[C,C++] copy constructor  (0) 2018.06.26