템플릿 템플릿 OuterTempl<T>
에 inner
멤버를 만드는 것이 왜 타당한 지 설명하는 방법에 대해 손실이 있습니다. 템플릿이 작성되지 않은 클래스에서는 그렇지 않습니다. Outer
.클래스 템플릿의 중첩 클래스가 "불완전"일 수 있습니다
// Non-template version
struct Outer
{
struct Inner;
Inner inner; // incomplete type (I get this)
};
struct Outer::Inner
{
};
// Template version
template<typename T>
struct OuterTempl
{
struct InnerTempl;
InnerTempl inner; // OK ... Huh!?
};
template<typename T>
struct OuterTempl<T>::InnerTempl
{
};
int main()
{
}
도 참조하십시오. ideone.