Template, map, iterator - Megoldva

Fórumok

Helló!

Volt egy osztályom, amit átalakítottam template-es osztállyá. Valami ilyesmit szeretnék csinálni:

template<class T>
class a {
public:
    map<int, T> aa;
    bool get() {
        map<int, T>::iterator it = aa.begin();
        return true;
    }
};

Erre azt mondja a g++, hogy:

temp2.cpp: In member function ‘bool a<T>::get()’:
temp2.cpp:11: error: expected `;' before ‘it’

A miheztartás végett, ezzel semmi baja sincs:

class a {
public:
    map<int, int> aa;
    bool get() {
        map<int, int>::iterator it = aa.begin();
        return true;
    }
};

Miért van ez, vagy minek olvassak bővebben utána? Vagy csak menjek el pihenni, holnap amint ránézek, rájövök?

Hozzászólások

Kell egy typename elé:

typename map<int, T>::iterator it = aa.begin();

Nem próbáltam ki, de első ránézésre - néhány pohár pezsgő után - ez a probléma.

KisKresz

szerk: megelőztek :)
------
gentóhuszár