{ 이번 장은 "1부, 템플릿 기본"에 속해 있다. 함수 템플릿이 무엇인가? 다양한 데이터형에 호출 되는 함수이다. 어떻게 함수 템플릿을 정의 하는가? 다음 처럼 정의 할 수 있다. // function family definition template T const& max( T const & a, T const& b ) { return a < b ? b : a; } 우선 fuction family 는 함수 템플릿을 가리키는 말인 것을 밝힌다. const 의 사용 법은 1장에서 말했던 규칙 데로 사용 됬다. 본론으로 들어와서 max 함수 템플릿은 a 와 b 중 큰 값을 리턴하며, 이때 a와 b의 타입은 아직 정해지지 않았으며, 타입을 typename T로 파라미터화 했다. 이 typename T를 템플릿..
책 정리/C++ Template 검색 결과
들어가기에 앞서저자들에 대한 소개와, 책의 구성, 읽는 방법등을 설명하고, 이 책에서 사용된 코딩 스타일에 대해 몇가지 언급을 하는 항목이다. 이 중, 코딩 스타일에서 const 사용에 대해서 언급한 부분이 마음에 들어 정리 한다.책에서 언급하는 const 사용 방법 예시 int main( void ) { int normal_int = 100; const int const_int = 100; int const int_const = 100; const int * const_int_pointee = &const_int; int const * int_const_pointee = &int_const; int * const int_pointee_const = &normal_int; // 이 경우 CHARS를 ch..
템플릿 특수화란? 템플릿 매개변수에 따라 컴파일러가 템플릿 코드 선택해 줄수 있게 해주는 기법을 말한다. 템플릿 특수화는 여러가지 용도로 사용 되는데, 포인터 타입이 들어오거나, 특정 타입을 받았을 경우, 특수화된 템플릿이 인스턴스화 되게 할 수 있다. 굳이 비교를 하자면, C 언어의 if 문 같은 녀석이다. (메타 프로그래밍에선 이 특수화를 감칠맛 나게 응용한다.) 템플릿 특수화를 어떻게 만드나? 예제코드를 보자. #include // 일반 클래스 템플릿 template class ikpil { public: ikpil() { using namespace std; cout
C++ 에서 함수의 기본 매개변수를 정하는 방법이 있다. 그 방법은 대부분 알고 있으므로 패스하고, C++ 템플릿 매개변수도 "기본 템플릿 매개변수"가 있다는 것만 알고 잇으면 된다. 이야기 진행 상 밑에서 설명 한다. C++ 템플릿은 함수 템플릿과 클래스 템플릿, 이 두개에서 템플릿을 구사 할 수 있는데, 기본 템플릿 매개변수는 클래스 템플릿에서만 적용이 된다. 어떻게 기본 템플릿 매개변수를 사용 할 수 잇는가? 예제코드 template class DefaultTemplateParameter { }; 그 사용 방법은 C++ 함수와 똑같다. 이렇게 만든 클래스 템플릿의 경우, C++ 함수 기본 매개변수와 같이, 생략되어서 사용 될 경우, 기본적으로 정해준 매개변수에 의하여 초기화가 이루어 진다. 총평 따..
최근댓글