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]

c++/2294: using declaration confusion



>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:


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