what we have:
class TClass {
public:
TClass();
};
template<class T> class FClass<T>: public T {
public:
FClass();
};
TClass::TClass() {
// some code
}
template<class T> FClass<T>::FClass : T() {
// some code
}
int main (int argc,char* argv[]) {
FClass<TClass>* FClass1 = new FClass<TClass>;
return 0;
}
g++ doesn't seem to like this code portion and failed to compile this, but Borland C++ Builed compiled this without any warnings.
What's wrong?