이번 장에선 그동안 이야기 하지 않았던 템플릿의 제약 사항이나, 예외 상황에 대해서 정리해 보자.
8.1 파라미터화된 선언의 다양한 형태
이런건 그냥 코드 보면 된다. 선언이 무엇이고 정의가 무엇인지 알기 때문에 선언이 어떻게 파라미터화만 봐도 충분하다고 생각 한다. 그래도 코드는 정의 선언 둘 다 나열해 보자.
공용체도 파라미터화된 선언을 할 수 있다. 방법은 동일하다 코드를 봐보자.
여기에서 눈 여겨 볼 것은, 클래스 내부에서 파라미터화된 선언을 하는 방법이 아닐까 한다. 그런데 진짜 뇌속에 와 닿지 않는 말인 "파라미터화된 선언" 은, 마치 별나라 날씨 이야기 만큼 기억되지 않는다. 나만 그럴까?
그냥 "파라미터화된 선언"을 "템플릿 선언" 이라고 하면 충분할 텐데 말이다. 하지만 이 생각은 일부에만 적용 된다.
다음의 3가지는 템플릿이라고 불릴 수 없다.
1. 클래스 템플릿의 멤버 함수 정의
2. 클래스 템플릿의 멤버 클래스 정의
3. 클래스 템플릿의 멤버 정적 데이터 정의
이 3가지는 템플릿이라고 불리기가 어렵다. 왜냐하면, 클래스 템플릿의 파라미터에 종속되어져 고정적으로 정해진 것이기 때문이다. 그러니까 이들은 템플릿이 아니고 단지 파라미터화된 클래스의 멤버 정의일 뿐이라는 것이다.
물론 이들 역시 파라미터화된 선언을 하면 "템플릿"으로 불릴 수 있겠지만 ...그리고 함수 템플릿의 경우 기본 매개변수를 갖을 수 있다는 것도 기억해 두면 좋을 듯 싶다.
자~ 템플릿 선언들의 다양함을 알았으니, 이제 부터 좀 더 상세하고 예외적인 것들에 대해서 알아보자.
'책 정리 > C++ Template' 카테고리의 다른 글
8장, Part 4, 템플릿에서의 프렌드 : 이건 많이 다른데? (0) | 2009.07.29 |
---|---|
8장, Part 3, 템플릿 인자 - 템플릿 인자의 다양한 설정 방법 (0) | 2009.07.25 |
8장, Part 2, 템플릿의 기초 원리의 깊은 이해 - 템플릿 파라미터 (0) | 2009.07.25 |
8장, Part 1-2, 템플릿의 기초 원리의 깊은 이해 : 재미없는 템플릿의 링크 (0) | 2009.07.12 |
8장, Part 1-1, 예외적인 가상 멤버 함수 (0) | 2009.07.12 |
7장, 기본 템플릿 용어 (0) | 2009.07.05 |
6장, 템플릿 실제 사용 : 디버깅 템플릿 (0) | 2009.07.05 |
6장, 템플릿 실제 사용 : 미리 컴파일된 헤더 (0) | 2009.07.03 |
6장, 템플릿 실제 사용 : 템플릿과 인라인 (358) | 2009.06.29 |
6장, 템플릿 실제 사용 : 템플릿 코드 파일 관리법 (720) | 2009.06.29 |
최근댓글