기본 콘텐츠로 건너뛰기

11월, 2007의 게시물 표시

LOGGING 을 얼마나 중요하게 생각하십니까?(LOG4CXX)

황제펭귄의 게임개발이야기 [여기는 한국] | 황제펭귄 http://blog.naver.com/kimbeast/60016524389 hello world 프로그램을 만들때 초보는 기능 구현에만 충실하게 된다. void main() { printf("hello world"); } 이렇게 만들어 놓구..아 ~~ 기쁘다.이렇게 생각하겠지. 중급 정도 되면 고민을 먼저한다. 이거 hello world 를 출력하지만 나중에는 입력받아서 처리하게 할꺼야. void main() { char chInput[80]; printf("출력할 글자를 입력하세요"); scanf("%s", chInput); printf("%s", chInput); } 조금더 생각하는 사람이라면.. 입력방식의 변화가 생기기때문에 로직분리를 위해서 함수또는 class로 입력기를 처리할수 있다. void main() { CInputManager inputManager; inputManager.input(); printf("%s", inputManager.getInputChar()); } 자..그럼 만족하겠지. 근데..예를 들어 문제가 생겼다고 하자. 출력이 안된다던지.한글이 깨진다던지.아니면..DB에서 읽어들이는데 자꾸 읽히지가 않고 문제가 생긴다고 하자. 어떻게 해결할 것인가?~ 간단한 프로그램이니까 디버그로 돌리면 될것이다. 그런데 큰 프로그램이라면 어떻게할것인가~? 개발할때 무수히 많은 printf문장으로 console에 출력을 쭈르륵 할것이다. 그리고 나중에 서비스에 올릴때에는 이넘의 printf 또는 cout

[STL] erase()를 사용하여 List 원소 삭제 시 주의사항

picbuddy님의 블로그 (Mesh Generation) | 플라나 http://blog.naver.com/picbuddy/80032246219 다시 한번 기억을 환기시키기 위해 /////////////////////////////////////////////////////// for( Iterator = Vector.begin(); Iterator != Vector.end(); ) { Vector.erase(Iterator); } /////////////////////////////////////////////////////// for( Iterator = List.begin(); Iterator != List.end(); ) { List.erase(Iterator); } 위 두 문장의 차이가 뭘까? 위의 문장에서는 문제가 없지만 아래 문장에서는 에러가 발생한다. 왜 그럴까? erase 함수의 구현은 둘다 똑같은데... 그 이유는.... RandomAccessIterator와 BidirectionalIterator의 차이에 있습니다. vector는 해당 원소가 삭제되면 Iterator의 공백을 삭제된 원소 다음에 있는 원소 위치로 채워지게 된다. 이는 RandomAccessIterator(멋대로 접근 가능 지시자)라 가능한 듯...(솔직히 컴파일러에 따라 다른지 그것까지는 모르겠음. 일단 Visual Studio에서는 그렇게 작동) 허나 list는 BidirectionalIterator(순서대로 차근차근 접근 가능)이므로 해당 원소가 삭제되면 Iterator는 그 다음 위치를 잃어버리게 되는 것이다. 결국 그 다음 지시자의 위치는 까마득한 별나라로... 이를 위한 해결 방법 가장 확실한 방법은 erase 함수의 리턴값을 이용하는 것이다. erase 함수의 리턴값이 바로 삭제 원소 다음에 있는 원소 iterator이기 때문... for( Iterato

pml용 vim syntax 파일

pml용 vim syntax 파일 입니다. 이 파일을 vim의 syntax 폴더 안에 넣어두고, vim 폴더 안에 있는 filetype.vim 에 아래의 내용을 추가합니다. au BufNewFile,BufRead *.pmlfnc,*.pmlfrm,*.pmlobj setf pmlfnc 2007.11.16 $* 주석 처리한 것 --2007.12.20 기타 등등 추가. --2008.01.18 ...