|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
[c++] templates, set e iteratori, errore strano
Salve ragazzi
facendo una cosa del genere template <class T> T *cercaPerId(unsigned ident, set<T *> &tabella) { set <T *>::iterator it; ..... } il compilatore mi dice che vuole il punto e virgola prima di it, che è un modo come un altro per dirmi non so che dirti ma a me questa cosa non mi va bene. sapreste indicarmi un modo alternativo per fare la stessa cosa? vi ringrazio in anticipo
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Codice:
#include <set> #include <iostream> struct Foo { int foo; }; namespace std { template <> class set<Foo> { public: static int iterator; }; } int std::set<Foo>::iterator = 10; using namespace std; int main() { set<Foo>::iterator = 5; cout << set<Foo>::iterator << endl; } ![]() Nel tuo caso, devi dire esplicitamente al compilatore che si tratta del nome di un tipo, per cui il tuo codice va modificato come segue Codice:
template <class T> T *cercaPerId(unsigned ident, set<T *> &tabella) { typename set <T *>::iterator it; ..... }
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
ti ringrazio tantissimo. non ci ho capito molto ma quantomeno funziona
![]()
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:55.