Loading...

visual studio 2008 intellisense 검정글씨

visual studio 2008 설치 sp1까지 설치했으나.... 몇번이고 깔고 지우고 완전 또 지우고 또 깔아도 젠장..이건뭐...안됨... 무엇이 안되느냐...intellisense 와 js,apsx 파일을 열면 검정색 글씨가 나와서리... 방법을 못찾다가....역시 우리의 BH씨께서....찾아 주셨심.... 방법은... devenv/resetskippkgs Setting environment for using Microsoft Visual Studio 2008 x86 tools. C:\Program Files\Microsoft Visual Studio 9.0\VC>devenv C:\Program Files\Microsoft Visual Studio 9.0\VC>devenv/resetskippkgs..

클래스 템플릿

#include #include template // 데이터형 파라미터로 사용할 식별자 class Stack { public: void push(T const&); void pop(); T top() const; bool empty() const { return data_.empty(); } private: std::vector data_; }; 클래스 템플릿 내부에서 다른 일반적인 데이터형처럼 T를 사용하여 멤버와 멤버함수를 선언할 수 있다. 이 클래스의 데이터형은 Stack이고 T는 템플릿 파라미터이다. 그러므로 선언에서 이 클래스의 데이터형을 써야 한다면 Stack로 표기해야 한다. ex ) 복사생성자나 할당연산자. Stack (Stack const&); 복사생성자 Stack& operator= (..

오버로딩 (함수 템플릿)

템플릿함수도 같은이름의 함수를 여러개 쓰는 오버로딩이 가능하다. 아래의 예를 보면 같은 이름으로 오버로딩된 템플릿 함수들과 일반 함수를 볼 수 있다. inline int const& max(int const& a, int const& b) { return a < b ? b : a; } template inline T const& max(T const& a, T const& b) { return a < b ? b : a; } template inline T const& max(T const& a, T const& b, T const& c) { return ::max(::max(a,b), c); // int, int일 경우 가장 위의 nontemplete호출. } int _tmain(int argc, _TC..

인자추론

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 한큐에 파일복사등과 같은 단순 반복적인 일을 처리할때 자주 사용. 프로젝트의 빌드이벤트를 통해 이러한 배치파일을 실행시키게 걸어두면 편하다. 겜브리오도 이런 방식을 쓴다는데... 왜몰랐을까..ㅜㅜ. 공부 헛했군..헐헐.