2010-08-02 3 views
0

템플릿과 관련된 질문에 대답하지 않습니다. 기본적으로 템플릿이 컴파일러에 의해 컴파일되는 방법. 나는 봤지만 대답을 찾지 못했습니다. 누군가가 나를 도울 수 있습니까C++ 템플릿 컴파일

+3

좀 더 구체적이어야합니다. –

+0

@Neil 템플릿 편집이 면접관의 두 단계가 필요하다고 들었지만 이해하지 못했습니다. – Poorna

답변

3

템플릿 자체는 컴파일되지 않으며 템플릿의 특정 인스턴스화가 있습니다. 템플리트는 단순히 사용되거나 명시 적으로 인스턴스화 됨으로써 인스턴스화 될 수 있습니다.

예. 함수 템플릿을 제공 : 특정 인스턴스에 이르는

f<int>(); // compiler will instantiate a concrete f<int>() 

이 ... 컴파일되는 :

template<class T> void f() {} 

이것은 당신이 사용할 수있는 기능에 대한 단지 템플릿입니다. 또는 명시 적으로 인스턴스를 생성 할 수도 있습니다.

원본 템플릿은 컴파일되지 않으며 단지 구체적인 인스턴스를 만드는 데 사용됩니다.

+0

하지만 구체적인 인스턴스를 인스턴스화하지 않고 템플릿 컴파일러에 구문 오류가 있으면 오류가 발생합니다. 이유는 무엇입니까 – Poorna

+1

@siri 템플릿은 컴파일되지 않지만 인스턴스화가 일어나기 전에 컴파일러에서 구문 분석됩니다. 즉 구문 적으로 정확해야합니다. –

3

David Vandevoorde 및 Nicolai M. Josuttis의 C++ Templates - The Complete Guide과 같은 책을 읽으십시오. 그 (것)들을 사용하는 방법을 설명하고 게다가 그것은 또한 어떻게 구현되는지에 대한 약간의 통찰력을 준다.