------- Comment #3 from chsalvia at gmail dot com  2007-06-19 23:08 -------
Sorry.  It seems this is actually a namespace conflict issue.  If you add
include the iostream header file and add "using namespace std" the code will
not compile, due to a conflict with std::count.

#include <iostream>
using namespace std;

template <class T>
struct templated_struct 
{
        int count;
};

template <class T>
int template_func()
{
        templated_struct<T> s;
        if (s.count < 0) return 0;
        return 0;
}

int main()
{
        template_func<int> ();
        return 0;
}

Now I'm not completely sure if this should be considered a bug.  However, since
count is clearly a member of templated_struct, there shouldn't be a namespace
conflict here.  Also, if you replace '<' with '>' or '==', it compiles fine
with no namespace conflict, which means gcc seems to be confusing '<' with a
template argument.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32408

Reply via email to