간단하게 요약하자면
template
A {
A *p, *n;
T* p;
};
template
B {
B *p, *n;
T p;
};
이 두 클래스의 부모 클래스를 만들고 싶었는데요.
template class C 를 만들어서
A : public C
B : public C
와 같이 상속받게 하고 싶었어요...
근데 뜻밖의 문제가 있다면
자기참조형 포인터 p, n이 부모의 타입(C*)을 그대로 쓴다는 거였죠.
... 자기참조형 포인터라 템플릿 인자로 넣기엔 모순이 생기고,
... 모든함수를 가상함수로 바꾸는 것도 조금 그렇고...
혹시나 해서 decltype(this) 라는 괴상한 타입을 상상해봤는데 ... 그건 좀 아니었고요.
다시 요약하자면
멤버변수 중 자기참조형 포인터를 템플릿으로 상속하는 건... 불가능한가요?