다음을 통해 공유


명시적 인스턴스화

명시적 인스턴스화 코드에서 실제로 사용 하지 않고 함수 또는 템플릿 기반 클래스의 인스턴스를 만들 수 있습니다.라이브러리 (.lib) 파일 배포에 대 한 템플릿을 사용 하 여 만드는 경우에 유용 하므로 인스턴스화되지 않은 템플릿 정의 개체 (.obj) 파일에 배치 됩니다지 않습니다.

다음 명시적으로 인스턴스화할 MyStack 에 대 한 int 변수 및 6 개 항목:

template class MyStack<int, 6>;

이 문은 인스턴스를 만드는 MyStack 없이 예약 하는 모든 저장소 개체입니다. 코드는 모든 멤버에 대해 생성 됩니다.

다음 생성자 멤버 함수 명시적으로 인스턴스화할:

template MyStack<int, 6>::MyStack( void );

함수 템플릿 수는 명시적으로 인스턴스화되지 특정 형식 인수로 redeclaring 하 여 예제에 표시 된 것 처럼 함수 템플릿 인스턴스화.

Microsoft 전용

사용할 수 있는 extern 키워드 자동 멤버의 인스턴스화를 방지 하기 위해.예를 들면 다음과 같습니다.

extern template class MyStack<int, 6>;

마찬가지로, 특정 멤버는 다음과 같이 외부 및 않습니다 인스턴스화된 것으로 표시할 수 있습니다.

extern template MyStack<int, 6>::MyStack( void );

[!참고]

extern 키워드의 특수화에만 적용 됩니다 클래스의 본문 외부에 정의 된 멤버 함수에.클래스 선언 내에 정의 된 함수는 인라인 함수 간주 되며 항상 인스턴스화됩니다.

참고 항목

참조

함수 템플릿