Hi Leute
ich versuche einer Klasse mit Templateparameter I einen Iterator einer Liste von diesem Typ zu übergeben und das gefällt dem Compiler nicht.
Fehlermeldung:
warning C4346: 'std::list<I>::iterator': Abhängiger Name ist kein Typ
1> Präfix mit 'typename' zum Angeben eines Typs
1> d:\projects\videoprocessing\testbenches\cmdline\main.cpp(15): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "Test<I>".
1>d:\projects\videoprocessing\testbenches\cmdline\main.cpp(11) : error C2061: Syntaxfehler: Bezeichner 'iterator'
Könnt Ihr mir da weiterhelfen?
Gruß, Emu
ich versuche einer Klasse mit Templateparameter I einen Iterator einer Liste von diesem Typ zu übergeben und das gefällt dem Compiler nicht.
Fehlermeldung:
warning C4346: 'std::list<I>::iterator': Abhängiger Name ist kein Typ
1> Präfix mit 'typename' zum Angeben eines Typs
1> d:\projects\videoprocessing\testbenches\cmdline\main.cpp(15): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "Test<I>".
1>d:\projects\videoprocessing\testbenches\cmdline\main.cpp(11) : error C2061: Syntaxfehler: Bezeichner 'iterator'
Code:
#include <list>
using namespace std;
template<class I>
class Test
{
public:
list<I> liste;
void show(list<I>::iterator it1)
{
printf("%d",*it1);
};
};
int main()
{
Test<int> test;
test.liste.push_back(5);test.liste.push_back(7);
test.liste.push_back(5);test.liste.push_back(7);
list<int>::iterator it1 = test.liste.begin();
do{
test.show(it1);
it1++;
}
while(it1 != test.liste.end());
return 0;
}
Könnt Ihr mir da weiterhelfen?
Gruß, Emu