본문 바로가기

Dev/C++

functor - 함수객체 functor # functor(함수객체)는 함수의 인터페이스를 지원하는 객체를 말합니다. 구체적으로 말하면 class에 operator()를 overloading하여 사용하는 관용구를 말합니다. #include <iostream> #include <string> using namespace std; class Adder { public: Adder() {} ~Adder() {} .. 더보기
Casting operators Casting operators #C++에서는 4가지의 cast 연산자가 추가 되었습다. 물론 C언어와의 호환성을 위해 C언어의 문법도 지원합니다. 그러나 명확하고 보다 안전함 때문에 C++의 cast를 추천합니다. static_cast #사전적 의미는 런타임시 타입에 대한 체크와 cast가 이루어지는것이 아니고 컴파일시에 체크와 cast되는 연산자 일반적으로 C언어의 형변환이 여기에 속합니다. 그리고 base 클래스에서 deriv.. 더보기
export export #C++ template의 내보내기 키워드 입니다. 아직 제대로 구현되어 있는 컴파일러는 없습니다. template은 타입이 정의 되지 않은 상태의 함수나 객체를 컴파일 타입에 정의를해서 코드를 생성하는 일종의 코드제너레이터 같은 것입니다. template <class T> class TClass { T t; }; 위의 코드는 TClass<int> intClass 란 식으로 인스턴스를 .. 더보기
main function main Function #ISO C++의 공식 main함수의 원형은 아래와 같습니다. int main() int main(int argc, char *argv[]) 두개의 원형이 아닌이상 모두 표준에 어긋나는것입니다. 표준화이전에 쓰여진 책 혹은 컴파일러에서는 void main() 이란 원형도 타탕하다는 주장이 있었습니다. 그러나 그것은 표준에 어긋납니다. VC++ 같은 컴파일러는 void main()을 허용하지만 하위호환성을.. 더보기
tr1::regex (boost::regex) 샘플코드 #include <iostream>#include <string>#include <memory>#include <fstream>#include <iterator>#include <sstream>#include <vector>#include <functional>#include <regex>using namespace std;typedef vector&.. 더보기
boost 를 이용한 TR1 Library 사용하기 출처 : http://boost.org/doc/html/boost_tr1/usage.htmlboost 1.34 버전 이상 부터 지원std::tr1 내용 : Reference Wrappers. Smart Pointers. Class template result_of. Function template mem_fn. Function Object Binders. Polymorphic function wrappers. Type Traits. Random N.. 더보기
VC++ 2005 배포 http://msdn2.microsoft.com/ko-kr/library/ms235285(VS.80).aspx 더보기
Unhandled C++ Exceptions #include <iostream> using namespace std; void term_func() { cout << "term_func was called by terminate." << endl; exit( -1 ); } int main() { try { set_terminate( term_func ); throw "Out of memory!"; // No .. 더보기
OutputDebugString // printf 포맷을 이용하는 OutputDebugString 함수void Trace(LPCTSTR szFormat, ...){    enum { BUFF_SIZE = 2048 };     TCHAR szTempBuf[BUFF_SIZE] ;    va_list vlMarker ;     va_start(vlMarker,szFormat) ;    _vstp.. 더보기
C++0x http://lastmind.net/2004/08/the_new_cpp_part_1.htmlhttp://lastmind.net/2004/10/the_new_cpp_part_2.htmlhttp://lastmind.net/2006/07/a_brief_look_at_cpp0x.htmlhttp://lastmind.net/2005/07/the_design_of_cpp0x.htmlhttp://lastmind.net/2005/04/schedule_for_tr2_.. 더보기
GRETA MS의 research site에서 다운 받을수 있는 정규식(Regular Expression ) 라이브러리 이다.C++에서도 펄과 같은 정규식표현식이 필요할때 사용을 하면 된다.물론 이것 말고 더 boost의 regex++ 라는 유명한 라이브러리도 있지만 regex++보다 가볍고 몇개의 소스로 배포 되어 있어서 사용하기에 더 편한것 같다.그리고 regex++보다 낳은 성능을 주장(?)하고 있다그렇지만 현재 적용중인 몇개의 소스는 regex++ 로 .. 더보기
A non-type template-parameter 14.1.4 A non-type template-parameter shall have one of the following (optionally cv-qualified) types: * integral or enumeration type, * pointer to object or pointer to function, * reference to object or reference to function, * pointer to member. [Progr.. 더보기