This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/24588] Fails to identify template using local classes



------- Comment #2 from igodard at pacbell dot net  2005-10-30 21:29 -------
I don't get it. The argument is A<int>::iterator, which surely depends on
A<E>::iterator (with "E" taken as "int"). The problem also arises in the
simpler case:
#include <iostream>

template<typename E>
class A {
public:
    class iterator {
        E dummy;
        };
    iterator iter;
    };

template< typename E>
void sort( typename E::iterator& first, typename E::iterator& last ) {
    std::cout << "sort" << std::endl;
    }

int main( int argc, char *argv[] ) {
    A<int> first, last;
    sort(first.iter,last.iter);
    return 0;
    }

It looks to me that unification is not looking at the qualifier of a qualified
type. This may be what the standard says (it's a mystery to me) but is sure
surprising.

Ivan


-- 


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]