사설
티스토리 임시저장 본 으로 유지하고 있다가 다 날렸슴.. 내 3시간.. 절대쌍교의 가의신공이 생각나는군. 배운게 있다면, 독립적 구성으로 4단계로 구분짓고 저장하는 습관을 기르면 괜찮겠군. 이라고 생각 됨.
템플릿에서 이름을 평가하는 규칙이 왜 중요한가?
가뜩이나 C++에서 이름을 평가하는 방법이 어렵다. 그래서 템플릿까지 끼면 더 어렵다. 어려운 것을 모르고 지나가면, 큰코 다친다. 그래서 중요하다. 만약 C/C++을 공부한 사람이라면, "이게 왜 어려운데?" 라고 반문할 수 있다. 상대적으로 어려운 것이니 그러려니 하자.(운동하고 있는 문체가 운동하고 있는지를 관찰하려면, 다른 운동을 하는 물체와 비교 할 수 밖에 없는 이치와 같다. - 아인슈타인)
템플릿에서 이름을 평가하는 규칙을 알기 전에, 몇가지 3가지 단어만 풀이하고 넘어간다. 왜냐하면 이러한 단어가 사용 되기 때문이다.
식별자(Identifier) : 영문자와 "_" 와 숫자 로 이루어진 이름으로, 숫자로 시작할 수 없다. 쉽게 생각해 C++에서 사용되는 모든 이름 들이다. 이것을 설명한 이유는 "저 식별자가 어떤 이름으로 평가되는가?" 란 표현들이 있기 때문이다.
한정된 이름(Qualified Name) : 그 이름이 보이는 영역을 같이 표기한 이름을 뜻한다. 예를 들어 std 네임스페이스에 있는 string 의 경우 std::string 으로 지정함으로써 std 에서만 string 을 찾는다. 마찬가지로 . -> 을 같이 사용한 이름 역시 한정된 이름에 속한다. 이는 나중에 알겠지만, 템플릿 속에서 이름 평가가 힘들기 때문에 한정된 이름을 쓸 수 밖에 없을 때가 있기에, 이 개념을 알고 있어야 한다.
종속 이름(Dependent Name) : 템플릿 파라미터와 어떻게든 연관된 이름을 모조리 다 종속 이름이라고 한다. 한정된 이름일 지라도 템플릿 파라미터와 연관 되어 있다면, 종속 이름이다. 종속이름은 이름을 평가하기 힘들다.(.. 컴파일러 제작자의 삶을 무척 피곤하게 한다는 설도 있다.)
책에선 몇가지 더 있는데, 이 3가지만 알면 되고, 나머지 모르는 단어가 나오면 그때 찾아 보겠다.
나머진 나중에 정리해야겠다. 완전 의욕 상실이다.
'책 정리 > C++ Template' 카테고리의 다른 글
10장 인스턴스화 2부 : 게으른 인스턴스화 (0) | 2010.01.03 |
---|---|
10장 인스턴스화 1부 : 주문형 인스턴스화 (0) | 2010.01.03 |
9장, 템플릿에서의 이름 4부 : 클래스 템플릿의 상속 (360) | 2010.01.01 |
9장, 템플릿에서의 이름 3부 : 템플릿 파싱 (0) | 2009.12.31 |
9장, 템플릿에서의 이름 2부 : 템플릿에서 이름 룩업 규칙 (360) | 2009.12.30 |
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 |
최근댓글