[Bug c++/24795] Error in dependent name-lookup

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Dec 25 02:14:00 GMT 2005



------- Comment #10 from pinskia at gcc dot gnu dot org  2005-12-25 02:14 -------
> We're still speaking about
> 
> namespace X {
> struct A {};
> struct B {};
> }
> 
> void foo(X::A&);
> 
> template <class T>
> void g(T& t)
> {
>   foo(t);
> }
> 
> void foo(X::B&);
> 
> void bar(X::B& b)
> {
>   g(b);
> }

This is invalid as Koenig look cannot and will not find the second foo as it is
not in the namespace X.
The overloaded set for foo in g only contains the first foo and then when
instantiating it, it reruns the Koenig rules and that says it can only find foo
in the namespace X so the code is rejected.

So this is a dup of bug 2922 after all.


*** This bug has been marked as a duplicate of 2922 ***


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |DUPLICATE


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



More information about the Gcc-bugs mailing list