Вчера ComeauC удачно (без линковки) скомпилил следующее:
class A
{
unsigned int i;
public:
A(int i)
{
this->i = i;
}
};
template <class T> class Array;
template <class T>
class Memory
{
Array<T>& innerArray;
public:
Memory(Array<T>& a): innerArray(a) {};
};
template <class T>
class Array
{
static A a;
Memory<T> Mem;
public:
Array(): Mem(*this) {};
};
template <class T>
A Array<T>::a(10);
Array<int> iArray;
template class Memory<int>;
template class Array<int>;
То есть, очень нужные вещи скомпилил. Маладца!