MSVC 2008 STL vector

사건의 발단은 VC9으로 테스팅하던 코드를 VC7.1로 포팅하면서 발생했습니다. 이상한 점은 VC7.1이 더 빠른겁니다. ?! 그것도 무려 60%정도였습니다. VC7.1은 STLPort를 사용하고 있었고, VC9은 MS에서 제공하는 녀석을 쓰고 있었지요. 일단, 코드부터 봅시다. // STLPort 5.2.1 _vector.h:121 typedef _Tp value_type; typedef value_type* pointer; typedef const value_type* const_pointer; typedef value_type* iterator; typedef const value_type* const_iterator; // MSVC 2008 vector:1886더 보기

TortoiseGIT와 Subversion. Local Commit의 사용!

TortoiseSVN을 이용한 Subversion의 사용은 매우 쾌적합니다. 멋진 UI가 가져다 주는 쾌적함과 Windows Explorer의 Context Menu확장을 통한 통합된 이용은 아주 매력적이죠. 하지만!!!!!!!! 도저히 참을 수 없는 단점이 있습니다. 바로 “Local Commit”의 부재입니다. Local Commit은 중앙의 저장소에 Commit하는게 아니라, 프로그래머의 개인 저장소에 Commit하는 개인적인 Commit의 개념입니다. 작업량이 많을 경우에는 중간 중간 Commit하는게 필요한데 중앙의 저장소에 Commit했다간 동료들의더 보기

boost::array를 배워봅시다.

1. Old. Old. Old style char buffer[1024]; …(기타 여러 코드들)… sock.recv(buffer, 1024); 혹시 위와 같은 스타일의 코드를 작성하고 있지는 않으신가요? 물론, 잘 작동하고 문제가 없는 코드일겁니다. 하지만, 여기엔 문제가 하나 있습니다. buffer는 배열이지 객체가 아닙니다. iterator도 없으며, 멤버함수도 없습니다. 불편할 뿐더러 위험합니다. 한번 볼까요? char buffer[1024]; …(기타 여러 코드들. 복잡해서 눈에 잘 안들어옴)… sock.recv(buffer, 4096);더 보기