Ik wil een vector-iterator combineren met een template:
Mijn compiler (GCC) geeft de volgende error:
Waarom werkt dit niet?
Ik las dat een compiler niet kan bepalen of T een type is of iets anders, maar dat begrijp ik niet. En waarom werkt het dan alsnog niet wanneer ik er een typedef voorvoeg?:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #include <vector> #include <iterator> template<typename T> void functie(T blah) { std::vector<T> vec; // waarom werkt dit wel std::vector<T>::iterator it; // ,maar dit niet } int main() { return 0; } |
Mijn compiler (GCC) geeft de volgende error:
code:
(Test Drive Comeau C++ Online gaf een vergelijkbare error.)1
2
3
| | In function `void functie(T)':
line 8 | expected `;' before "it"
| [Build Error] [main.o] Error 1 |
Waarom werkt dit niet?
Ik las dat een compiler niet kan bepalen of T een type is of iets anders, maar dat begrijp ik niet. En waarom werkt het dan alsnog niet wanneer ik er een typedef voorvoeg?:
C++:
1
2
| typedef T td; std::vector<td>::iterator it; |
PC load letter? What the fuck does that mean?