Loading...

boost.org 에 있는 boost library 목록 정리

출처 : http://aronze.egloos.com/213805 boost.org 에 있는 boost library 목록 정리 * generic 을 옴기는 과정에서 그냥 일반화라고 적었는데요, specialize 와 마찬가지로 template 관련 책을 보시지 않으면 잘 이해가 되지 않을 것입니다. 보통 객체지향 프로그래밍과 대비되는 말로 template 을 사용한 디자인을 일반화 프로그래밍이라고 하며, 일반화로 디자인된 객체를 실제 객체로 매칭시켜서 특화시킨 것을 template specialize 라고 합니다. * stl 도 마찬가지지만 boost 는 고수준의 template 코딩 테크닉이 함축되어 있어 사용 혹은 구현 소스를 보실 때 혼동이 많으실 겁니다. 국내에 관련하여 빨간책 시리즈가 나와 있..

File Memory Mapping - 대용량 파일 입출력 처리 [펌]

파일내용을 그대로 메모리에 올려서 메모리에 올려진 파일내용을 수정하고 수정된 내용을 디스크 파일에 쓴다. 순서는 다음과 같다. - 파일 오픈 hF=CreateFile("test.txt") - 파일 내용을 메모리에 올린다 hMapF=CreateFileMapping(hF) - 메모리에 올려진 첫번째 주소를 얻는다. pF=MapViewOfFile(hMapF) - 첫번째 주소로 메모리 내용을 조작한다. - 중간중간에 변경된 내용을 강제로 디스크에 쓰게만든다. FlushViewOfFile(pF) - 해제. UnmapViewOfFile(pF); - 해제. CloseHandle(hMapF); - 파일 닫기. CloseHandle(hF); #include #include int main(int argc, char **..

Virtual inheritance

몰랐는데.. 이런것도 있었네.. 가상상속이라..ㅎㅎ. 딱히 자주 쓸일은 없겠지만... 참고 : http://blog.naver.com/islove8587?Redirect=Log&logNo=10025033292 http://www.gpgstudy.com/forum/viewtopic.php?t=5750&view=next&sid=6927265a0422861cdce20b963b0d55fc Virtual inheritance From Wikipedia, the free encyclopedia Jump to: navigation, search This article does not cite any references or sources. Please help improve this article by adding ..

vswprintf_s 사용법

사용할때마다 까먹고... 다시 할려고 하면 적잖게 시간을 낭비하게 되서 이번기회에 그냥 함수로 하나 만들어 뒀다. 맨날 까먹어.ㅜㅜ. inline void VirtualPrint(WCHAR* buffer, int sizeLen, WCHAR *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vswprintf_s(buffer, sizeLen, fmt, argptr); va_end(argptr); } WCHAR Line[MAX_PATH]; VirtualPrint(Line, MAX_PATH, L"%s %s : %s;\n", "하나", "둘", "셋");

선언과 정의

추가적인 상항으로 선언과 정의에 대해.. 선언 : c++가 그 이름을 c++영역에 도입하거나 재도입 한다는 뜻. 이러한 도입시에는 항상 그 이름의 부분분류가 포함되지만 세부사항이 꼭 필요하진 않다. ex) class c: c를 클래스로 선언 void f(int p); f()를 p라는 파라미터를 갖는 함수로 선언 extern int v; v를 변수로 선언 goto create_fail; 이름을 갖긴 하지만 c++에서 선언으로 간주되지는 않는다. #define DATAPATH "d:" 이름을 갖긴 하지만 c++에서 선언으로 간주되지는 않는다. 위의 예를 보면 매크로와 goto라벨은 이름을 갖긴 하지만 c++에서 선언으로 간주되지는 않는다. 정의 : 그 구조의 세부사항이 알려지거나 변수라면 저장공간이 할당될 ..

warning C4251

헐헐..이런삽질이.. warning 하나 없애보겠다고 그렇게 삽질을 하다니.... 분명 dll 지정해줬는데 말야 왜 인터페이스가 없다고그러는 겐지. 위의 첨부 파일을 읽어보면 답을 알 수 있다. 어느분이 쓴지는 몰겠지만 존경합네다.(--)(__) 꾸벅. 이 경구 메세지는 STL 컨테이너 정의에 _declspec(dllexport) 선언이 되어있지 않은 클래스템플릿을 export 할시에 나타난다. - 해결 방법 vector의 경우엔 템플릿을 인스턴트화 시킨 후 사용하면 해결되지만 다른것은 안된다. 이유는 vector는 워낙 많이 쓰는 거라 특별이 되도록 만들어 놨기 때문이라나~ vector 해결법 : template class __declspec(dllexport) std::vector; 그 이외엔 #pr..

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

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

compile time assertion

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