gx <[EMAIL PROTECTED]> writes:
>
> template<class T> bool find0(const std::vector<T> &v){
>         for(std::vector<T>::const_iterator it=v.begin(); it!=v.end(); +
> +it){
>                 if(!*it)
>                         return true;
>         }
>         return false;
> }
>
>
> I believe that the problem is in the definition of template function.
>
> When I try to compile a source code with g++/minigw32-g++ I obtain
> this output:
>
> $ g++ -Wall -pedantic pokus2.cpp
> pokus2.cpp: In function 'bool find0(const std::vector<T,
> std::allocator<_CharT> >&)':
> pokus2.cpp:17: error: expected `;' before 'it'
> pokus2.cpp:17: error: 'it' was not declared in this scope
> pokus2.cpp: In function 'bool find0(const std::vector<T,
> std::allocator<_CharT> >&) [with T = double]':
> pokus2.cpp:38:   instantiated from here
> pokus2.cpp:17: error: dependent-name
> 'std::vector<T,std::allocator<_CharT> >::const_iterator' is parsed as
> a non-type, but instantiation yields a type
> pokus2.cpp:17: note: say 'typename
> std::vector<T,std::allocator<_CharT> >::const_iterator' if a type is
> meant
>
> I would gladly welcome your replies.

Well, the error message says it all. have you tried doing what it
tells you to?

I.e.

for (typename std::vector<T>::const_iterator it = v.begin();
     it!=v.end();
     ++it)

If you don't write typename, the compiler has to assume that
const_iterator names something that is not a type.
_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to