gcc bug?

Joao Belo jbelo@isel.pt
Mon Sep 6 15:32:00 GMT 1999


Hello,

with the code

        #include <iterator>

        template<class T>
        struct X
        {
        };

        template<class T>
        X<T> operator+(const X<T>&, const X<T>&);

        template<>
        X<int> operator+<int>(const X<int>&, const X<int>&);

gcc reports:


/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h: In instantiation of `iterator_traits<int>':

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:576:   instantiated from `reverse_iterator<int>'
        x.cpp:12:   instantiated from here

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:104: `int' is not a class, struct, or union type

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:105: `int' is not a class, struct, or union type

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:106: `int' is not a class, struct, or union type

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:107: `int' is not a class, struct, or union type

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:108: `int' is not a class, struct, or union type

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h: In instantiation of `reverse_iterator<int>':
        x.cpp:12:   instantiated from here

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:576: no type named `iterator_category' in `struct
iterator_traits<int>'

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:578: no type named `value_type' in `struct
iterator_traits<int>'

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:580: no type named `difference_type' in `struct
iterator_traits<int>'

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:582: no type named `pointer' in `struct
iterator_traits<int>'

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:584: no type named `reference' in `struct
iterator_traits<int>'

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:601: no type named `reference' in `struct
iterator_traits<int>'

/cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../
../../../../include/g++-
        3/stl_iterator.h:601: confused by earlier errors, bailing out

Is this a bug?

I'm using Cygwin b20, gcc version 2.95 19990728 (release)

Thank you,
Joao Belo




More information about the Gcc-bugs mailing list