Вот мой код. Компилируется в VS2005, но не в gcc. Любые идеи
template<class T> Derived<T>::Derived(const Derived<T>& in) { Base<T>::Base<T>(in); //ERROR here }
«ожидаемое первичное выражение перед> токеном»
Вы не можете так явно вызывать конструкторы (если VS2005 позволяет, это расширение для конкретного компилятора). Правильный способ передачи аргумента в конструктор вашего родительского класса:
template<class T> Derived<T>::Derived(const Derived<T>& in) : Base<T>(in) { }