템플릿 타입
class AAA {
public:
// static int DWORD;
typedef int DWORD;
};
template<typename T>
void foo(T a) {
T::DWORD *p; //
// 1. DWORD 는 T 의 static 멤버 data 이다.
// 곱하기 p 를 하고 있다.
// 2. DWORD 는 typedef 등 으로 만든 타입이다.
// 포인터 변수 p를 선언하고 있다.
typename T::DWORD *p; // 템플릿 안의 타입을 꺼낼때는 반드시 typename 을 표기해야 한다.
typename AAA::DWORD a; //
// AAA 는 템플릿이 아니고 일반 타입이다.
}
int main() {
AAA aaa;
foo(aaa);
}
error code
list
template
int main() {
list
template
// c++11 의 도입으로 기존 소스를 보다 간단하게 표현 할 수 있다.
// 결국 value_type 의 개념이 없어도 된다.
auto n2 = v.front(); } ```
댓글남기기