c++/2294: using declaration confusion

theonetruekenny@yahoo.com theonetruekenny@yahoo.com
Thu Mar 15 12:56:00 GMT 2001


>Number:         2294
>Category:       c++
>Synopsis:       using declaration confusion
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 15 12:56:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Kenny Simpson
>Release:        gcc version 3.0 20010313 (prerelease)
>Organization:
>Environment:
online compiler
>Description:
>From the example in section 7.3.3 12 of the 1997 draft,
gcc complains about the "using C::f" declaration.
>How-To-Repeat:
from http://anubis.dkuug.dk/jtc1/sc22/open/n2356/dcl.html:
namespace B {
        void f(int);
        void f(double);
}
namespace C {
        void f(int);
        void f(double);
        void f(char);
}
void h()
{
        using B::f;   // B::f(int) and B::f(double)
        using C::f;   // C::f(int), C::f(double), and C::f(char)
        f('h');       // calls C::f(char)
        f(1);         // error: ambiguous: B::f(int) or C::f(int) ?
        void f(int);  // error:
                      // f(int) conflicts with C::f(int) and B::f(int)
}
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list