Jun 102009
 

고수가 들려주는 코딩 가이드라인. 진정한 주입식 교육을 보여주는 책이다. 어떻게 하라고 알려주는 게 대부분이다. 왜 이렇게 해야 하는지 이유를 알려주는게 간간이 있으나 거의 없는 수준. 그렇다고 “뭐 이렇게 책을 썼어!” 라고 탓할 수도 없는 게 좋다고 검증된 코딩 규칙과 가이드 라인을 알려주는 게 이 책의 목표이기 때문이다. 초급자에게는 완전 비추하는 책. 주입식 교육이 완전 체질에 맞는 초급자는 예외이다.

37장에 보면 상속 얘기가 나오면 노쌍 등장하는 “is-a”에 관한 이야기가 나온다. 이런 분석 방법보다는 “works-like-a”나 “usable-as-a”를 추천하는데, 오해의 소지가 더 적은 적절한 분석 방법으로 생각된다.

코딩 규칙을 정해야 하는데, 마땅한 가이드라인이 없거나 C++을 한번 복습해보고 싶을 때 보면 좋을 책이다.


by-nc-sa
Apr 272009
 

처음에는 라이브러리를 배우게 되고 이후에는 어떻게 하면 효율적으로 사용할 수 있는지 배우게 된다. 이 세상에 효율성을 따지지 않고 맘 편하게 쓸 수 있는 라이브러리가 과연 있을까? 그런 라이브러리가 있으면 얼마나 좋겠냐 만은 그런 거 없다. 효율적으로 쓰려면 어떻게 구현되어 있는지 알아야 한다. 특히 범용적으로 사용할 수 있게 설계된 STL은 더하다. 다른 라이브러리와 비교해 알아야 할 게 많아서 더 미움을 받는지도 모르겠다. 경험이나 소스 분석을 통해서 배우게 되는 과정을 다이렉트로 배울 수 있는 고마운 책이다.

예전에 본 책인데, 최근에 다시 한번 펼쳐보게 됐다. 그냥 읽어보는 것과 내 것으로 만드는 것은 역시 다르긴 다르다. 이번에는 읽었지만 지나치고 사용하지 않았던 것들과 유용한 데 사용하지 않은 것들을 다시 한번 정리해봤다. 역시 읽는 것보다 정리하는데 시간이 더 들었다.

이게 전부가 아니라 빙산의 일각일 뿐이라는 게 문제다. 뭐~ 평생 배우는 수밖에 없지.


by-nc-sa
Nov 082007
 

2판이 있는데, 목차를 살펴보니 새로 추가된 내용이 많아서 샀다. 상당히 많은 부분이 추가 되었고 내용들도 수정되고 추가 되었다. TR1에 대한 소개도 추가되었고 템플릿쪽에 대한 얘기가 늘어났다. 두번째로 보는 C++ 책이라 불리는 책이니 책에 대한 다른 칭찬의 말은 필요도 없을 것.

EC++을 산지는 꽤 됐는데, 이번엔 대충 훑어 보기보다는 틈틈히 정리하며 자세히 보다보니 무척 많은 시간이 걸렸다. 정말 읽어보면 난 속 편하게 프로그래밍을 했구나 하는 생각이 드는건 당연. 참 이렇게 내공이 넘치는 고수의 책을 읽는 것은 감동적이고도 즐겁다. 엄청난 내공을 지닌 무림 고수님들이 이렇게 내공이 실린 책을 많이 내주면 좋겠다. 굽신굽신

EC++에서 언급한 것들을 내가 짜는 코드에 자연스럽게 스며 들게 하는데에는 무척이나 많은 시간이 걸릴것 같다. 읽을 때는 “아하!” 뭐 이런 감탄사를 막 뱉어도, 시간이 지나면 또 잊어먹고 만다. 틈날때 마다 또 읽어보고 가까운 자리에 배치시켜 놔야겠다.

 

by-nc-sa
Nov 062007
 

The conversion truncates; that is, the fractional part is discarded.

- 4.9 Floating-integral conversions, ISO/IEC 14882

표준에 정의된 float에서 integer의 변환은 fractional part를 버리는 것으로 이루어 진다. 내림이 아니라 버리는 것이다.


std::cout << "static_cast<int>(4.6f) = " << static_cast<int>(4.6f) << std::endl;
std::cout << "static_cast<int>(-5.3f) = " << static_cast<int>(-5.3f) << std::endl;
static_cast<int>(4.6f) = 4
static_cast<int>(-5.3f) = -5

여기까지는 기본적인 내용이다. 내부적으로 한 번 살펴보면, MS Visual Studio에서는 _ftol()을 호출해서 변환을 한다. _control87, _controlfp, __control87_2를 사용해 rounding 방법을 바꿀 수도 있다.

Continue reading »

by-nc-sa