Da die Migration eines meiner Programme von GCC 3.3 auf GCC 3.4 nun mehr in den programmiertechnischen Bereich fällt, stelle ich meine weiteren Fragen jetzt hier:

folgendes Konstrukt meckert der 3.4er GCC, im Gegensatz zum 3.3er GCC:

Code:
template<class TYPE, class ARG_TYPE>
class CArray : public vector<TYPE>
{
public:
	void SetSize(int size, int grow=0)
	{
		m_size=size;
		resize(size); // Zeile 139
	}
	int GetSize() const { return size(); } // Zeile 141
	void RemoveAt(int idx)
	{
		typename CArray::iterator i=begin(); // Zeile 144
		i=i+idx;
		erase(i);
	}
	void InsertAt(int idx, TYPE o)
	{
		typename CArray::iterator i=begin(); // Zeile 150
		i=i+idx;
		insert(i,o);
	}

	void RemoveAll()
	{
		clear();
		SetSize(m_size);
	}

	/*void print()
	{
		int z=0; printf("CArray (%i) (%i):\n",size(),capacity());
		for(iterator i=begin(); i!=end(); i++) {
			printf("[%i]=%i\n",z,(*i)); z++;
		}
	}*/

	int m_size;
};
Die Übersetzung dieser Klasse liefert folgende Fehlermeldungen:

Code:
In file included from CGProcess.h:13,
                 from CSysUnit.h:10,
                 from CInfoServer.h:8,
                 from CBGInfo.h:15,
                 from CBGInfo.cxx:1:
idffile.h: In member function `void CArray<TYPE, ARG_TYPE>::SetSize(int, int)':
idffile.h:139: error: there are no arguments to `resize' that depend on a template parameter, so a declaration of `resize' must be available
idffile.h:139: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
idffile.h: In member function `int CArray<TYPE, ARG_TYPE>::GetSize() const':
idffile.h:141: error: there are no arguments to `size' that depend on a template parameter, so a declaration of `size' must be available
idffile.h: In member function `void CArray<TYPE, ARG_TYPE>::RemoveAt(int)':
idffile.h:144: error: there are no arguments to `begin' that depend on a template parameter, so a declaration of `begin' must be available
idffile.h: In member function `void CArray<TYPE, ARG_TYPE>::InsertAt(int, TYPE)':
idffile.h:150: error: there are no arguments to `begin' that depend on a template parameter, so a declaration of `begin' must be available
make: *** [obj/CBGInfo.o] Interrupt
Kann mir einer sagen, wie man das jetzt im neuen Compiler macht? Der alte akzeptiert das so und funktioniert damit auch! Bitte um schnelle Antwort!
Danke

Gruß, Hendrik