"Gaijinco" <ga******@gmail.com> wrote in message
news:11**********************@u72g2000cwu.googlegr oups.com
Why this doesn't work?
1: template <typename T>
2: void imprimir(vector<T> v)
3: {
4: for(vector<T>::iterator pos=v.begin(); pos<v.end(); ++pos)
5: cout << *pos << " ";
6: cout << endl;
7: }
8:
The compiler says
Line 4 expected `;' before "pos"
I don't know what that's supposed to mean! Thanks.
Please don't include line numbers with your code. Anyone who attempts to
compile it must first manually delete the numbers.
Replace
for(vector<T>::iterator pos=v.begin(); pos<v.end(); ++pos)
with
for(typename vector<T>::iterator pos=v.begin(); pos<v.end(); ++pos)
The compiler is interpreting vector<T>::iterator as a variable name, not as
a type name. Using typename tells it to interpret it as a type.
--
John Carson