2009.07.12 14:30 책 정리/C++ Template

이번 장에선 그동안 이야기 하지 않았던 템플릿의 제약 사항이나, 예외 상황에 대해서 정리해 보자.

8.1 파라미터화된 선언의 다양한 형태
이런건 그냥 코드 보면 된다. 선언이 무엇이고 정의가 무엇인지 알기 때문에 선언이 어떻게 파라미터화만 봐도 충분하다고 생각 한다. 그래도 코드는 정의 선언 둘 다 나열해 보자.

공용체도 파라미터화된 선언을 할 수 있다. 방법은 동일하다 코드를 봐보자.

여기에서 눈 여겨 볼 것은, 클래스 내부에서 파라미터화된 선언을 하는 방법이 아닐까 한다. 그런데 진짜 뇌속에 와 닿지 않는 말인 "파라미터화된 선언" 은, 마치 별나라 날씨 이야기 만큼 기억되지 않는다. 나만 그럴까?

그냥 "파라미터화된 선언"을 "템플릿 선언" 이라고 하면 충분할 텐데 말이다. 하지만 이 생각은 일부에만 적용 된다.

다음의 3가지는 템플릿이라고 불릴 수 없다.
1. 클래스 템플릿의 멤버 함수 정의
2. 클래스 템플릿의 멤버 클래스 정의
3. 클래스 템플릿의 멤버 정적 데이터 정의

이 3가지는 템플릿이라고 불리기가 어렵다. 왜냐하면, 클래스 템플릿의 파라미터에 종속되어져 고정적으로 정해진 것이기 때문이다. 그러니까 이들은 템플릿이 아니고 단지 파라미터화된 클래스의 멤버 정의일 뿐이라는 것이다.

물론 이들 역시 파라미터화된 선언을 하면 "템플릿"으로 불릴 수 있겠지만 ...그리고 함수 템플릿의 경우 기본 매개변수를 갖을 수 있다는 것도 기억해 두면 좋을 듯 싶다.

자~ 템플릿 선언들의 다양함을 알았으니, 이제 부터 좀 더 상세하고 예외적인 것들에 대해서 알아보자.

posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요

  1. Favicon of https://www.ikpil.com 농사를 짓는 게임 프로그래머 최익필 2009.12.25 19:08 신고  Addr  Edit/Del  Reply

    이 이야기는 "템플릿"의 용어를 정의 하는 일부분 중 하나이다. 라고 나는 생각 한다.