{ 이 항목에서 할 이야기는 무척 많다. 많은 일들을 겪어 보았기 때문이다.. 아, 그러고 보니, 많은 이야기는 이미했었다. 링크로 이번 항목은 대체한다. 대체 링크 : http://ikpil.com/734 http://ikpil.com/829 대신 매크로를 써야만 할 때가 있다는 이야기만 한다. 매크로를 써야만 할 때, 1. 어느 파일, 몇번째 라인이라는 로그를 남길 때 2. 컴파일러가 제공해 주는 매크로를 사용 하려고 할 때 3. Code Generator를 만들려고 할 때,(진현성 전임님께서 그 방법을 보여 주셨다. lex & yacc 도 같이... ) Code Generator 부분은 좀 더 심도 있게 공부해야겠다는 생각을 한다. 왜냐하면 수박 겉할기로는 알 수 아무 도움도 되지 않는 기술이기 때..
책 정리/C++ Coding Standards : C++ 코딩의 정석 검색 결과
const 를 쓸 껀덕지가 있으며 const를 무조건 붙여두는게 좋다는 이야기 이다. 일단 나쁜 것 부터 이야기 하고 싶다. 왜냐하면 나는 "Effective C++ & Exceptional C++"의 영향으로 const를 붙이도록 무척 노력했고, 코드는 점점 const 를 써야지만 컴파일이 되야 되는 지경에 까지 이르게 되었기 때문이다. 특히 멤버 함수에 const를 붙여주면, 그 함수 내부에서 호출되는 멤버함수들 역시 const를 보장해 줘야 컴파일이 된다. 이 문법적 기능 때문에, 바이러스 처럼 const 는 퍼지게 된다. 이렇게 될 때 프로그래머가 느끼는 피곤함은 나에게 있어서 나쁘다고 이야기 하고 싶다. 뭐, 그렇다고 해서 const를 더 적게 붙이거나 그러진 않는다. ; ) 어디까지나 사람으로..
런타임 오류와 컴파일 타임오류 등 정리한 곳 : http://pcclear.tistory.com/59 컴파일 타임에 에러가 나는 것은 전부 "문법" 에서 나게 된다. 이 문법은 런타임에 일어날 수 있는 많은 오류들을 잡아 준다. 예를 들어, explicit 키워드가 써진 생성자를 가진 객체를 매개변수로 하는 함수가 있을 경우, 해당 객체로 암시적 형변환 자체를 다 막아 줌으로써, 런타임에 생길 수 있는 오류를 잡아 줄 수 있다. 이것은 컴파일 타임에 런타임에 있을 수 있는 많은 오류들을 잡아 주기에 큰 역활을 한다.(개인적으로 이렇게 생각함) 다른 측면에서 보면, 런타임에 계산할 필요가 없는 상수들을 컴파일 타임에 계산하여, 사용 할 수도 있다. 이는 템플릿과 밀접한 관계를 가지고 있고, 메타 프로그래밍..
자원은 메모리인데, 이런 메모리를 사용하기 위해서 new 를 사용하게 된다. new로 할당한 자원은 항상 delete 를 해 줘야 하는데, 깜박 깜박하고 잊어 먹는 경우가 있다. 그래서, smart pointer 를 이용하는 것이다. 우선 "자원 획득은 초기화"에 대한 주제로, http://ikpil.com/417 에 포스트 했었는데, 이번 항목은 이렇게 넘겨도 좋을 듯 싶다. 여담으로 http://ikpil.com/720 이 부분도 생각해 봐야 한다. 총평 스마트 포인터를 직접 구현해 보는게 가장 큰 도움이 된다. 요령은 공유되는 카운팅 객체를 만들어 잘 사용 해야 하는 점이다. 아참, 내가 만든 스마트 포인터는 boost::shard_ptr과 싸운 후로, 이 세상에 멸종을 당했다. : )
갑자기 쓰레드에 관련된 이야기가 나와서, 어리 둥절했었다. 이번 항목은 쓰레드간의 안전한 공유를 위한 코딩의 시기와 방식을 어떻게 결정하는지에 대해서 이야기 한다. 이번 주제에 대해서 이야기 하기전에 비유가 되는 한가지 이야기를 생각해 봤다. 어느 마을에 의자를 아주 잘 만드는 사람이 있었다. 그 사람은 구현자이다. 구현자는 의자를 만들때 아주 깔끔하고 튼튼하게 만들기로 유명하다. 구현자가 만든 의자는 호출자에 의해 운반되어 시장에 팔린다. 사람들은 호출자가 운반한 의자가 구현자가 만든 것임을 알고 있기에 의심치 않고 구매를 한다. 어느날 호출자는 다른 시장에도 의자를 팔기 위해서 구현자에게 의자를 더 만들어 달라고 요청을 했고, 구현자는 사람들을 고용하여 의자를 더 만들었다. 다음날 호출자는 일상대로 ..
당신은 은행에 가서 현금 6천만원을 만원권으로 인출하여, 집으로 가려고 한다. 그런데 은행에 나왔을 때 그 6천만원은 모든 사람들에게 보이게 될 뿐만 아니라, 주위에서 이상한 눈초리로 볼 수도 있을 거라고 생각하니, 어떤 생각을 강구해야 될것 같다. 당신이라면 이 현금 6천만원을 어떻게 집까지 가져가겠는가? 나라면, 꼭꼭 숨키거나, 친구들을 불러서 같이 가져가거나, 승용차를 대기시키는 등, 다른 사람이 최대한 적게 볼 수 있는 방법을 사용 할 것이다. C++ 에서 정보라 불릴 수 있는 것이 바로 "돈"이라 할 수 있다. 정보의 가치가 크면 클 수록 더욱 비싸진다. 왜냐하면 이 정보는 아주 좋기 때문에, 많은 곳에서 사용 하려고 달려 들기 때문이다. 당신이라면 이 정보를 어떻게 가져와 이용할 것인가? 이상..
최근댓글