Loading...

인자추론

template inline T1 max(T1 const& a, T2 const& b) { return a < b? b:a; }; 위의 함수는 간단히 큰 함수를 반환하는 함수이다. 이를 사용할때 조심해야 할 부분이 있다. max(2,2,7); 을 사용하게 되면 분명 큰 수는 2.7이지만 반환값은 2가 된다. 그 이유는 반환값이 T1으로 되어있기 때문이다. 그렇다고 반환값을 T2로 할수도 없다. 이를 위한 해결로 아래와 같이 인자를 세개를 받도록 한다. template inline RT max(T1 const& a, T2 const& b) { return a < b? b:a; }; 첫번째 인자로 반환자료형을 받는데 첫번째 인자로 둔 이유는 간단하다. 인자추론을 사용하여 사용시 간편하게 하기 위해서이다. 만..

참조카운팅 + 스마트포인터 템플릿

RCPtr - 스마트 포인터 RCObject - 참조카운트 조작 String - user가 사용할 클래스 StringValue - 참조카운트와 실제문자열(오로지 String class 구현 보조만 하므로 String privat에 중첩) mec++ 29장.

듀얼모니터.. 빌어먹을 dxut

아놔~ 왜 DXUTFindValidDeviceSettings 호출하면..FAIL을 반환하는게냐~!!!!! 이것땜시..완전.캐삽질했는데.결국은.. 내가.듀얼모니터써서..그런건가..ㅡㅡ; DXUTSetMultimonSettings(false); 이 함수를 넣어주니 잘 되는군..헐헐. 이런..아름답지못한.빌어먹을세상같으니라고...캬캬캭~!!!! 이 함수는 dxut의 함수들이 멀티모니터에서 어떻게 작동할지 설정할 수 있다.

compile time assertion

중요한 안건은 두가지. runtime assert를 compile time assert로 대체. 이를 대체하면서 적절한 에러메세지 출력. 안전한 형변환을 위해 아래와 같이 만들었다고 생각해보자. #include // 안전한 형변환을 위해 선언. template To safe_reinterpret_cast(From from) { assert(sizeof(from)

배치파일에 대한 이야기

http://mwultong.blogspot.com/2006/05/dos-echo-off.html http://delicious.com/mwultong/batch http://mwultong.blogspot.com/2006/06/bat-batch-file.html 한큐에 파일복사등과 같은 단순 반복적인 일을 처리할때 자주 사용. 프로젝트의 빌드이벤트를 통해 이러한 배치파일을 실행시키게 걸어두면 편하다. 겜브리오도 이런 방식을 쓴다는데... 왜몰랐을까..ㅜㅜ. 공부 헛했군..헐헐.

2010. 6. 9. 19:25

FileChecker

특정파일 중복 체크 폴더내 중복파일 체크 최소사이즈 파일 체크 파일 체크한다고 만들긴 했지만... 답답하다... wrning도 잔뜩있고. 기본적인 처리도 몇개 안되어 있지만... 더이상 작업할 필요가없네...어차피.안쓰니까.헐헐.

마우스 커서 설정.

툴프로그램을 만들다 보면 시간을 많이 잡아먹는 기능을 추가해야 할 때가 있다. 그럴때는 사용자를 배려하는 마음으로 커서를 바꿔주자. // 모래시계 커서 HCURSOR hWaitCursor = ::LoadCursor(NULL, IDC_WAIT); HCURSOR hCursor = SetCursor( hWaitCursor ); .... // 커서복귀 SetCursor( hCursor );

unicode에서 한글출력

유니코드기반에서 fputws로출력을 하는데 이상하게 한글부분이 출력이 안된다. 유니코드기반의 함수에서 한글을 출력하기 위해서는 #include "locale.h" ... _wsetlocale(LC_ALL, L"korean"); ... wprintf(...) or fputws(...); 이러한 설정을해주어야 한다.