libstdc++/3759: nonconforming use of unqualified std:: names
Loren James Rittle
rittle@latour.rsch.comm.mot.com
Wed Jul 25 14:16:00 GMT 2001
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Loren James Rittle <rittle@latour.rsch.comm.mot.com>
To: david.abrahams@rcn.com
Cc: gdr@codesourcery.com, gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: Wed, 25 Jul 2001 16:15:34 -0500 (CDT)
In article <010501c11465$8c0d7870$6701a8c0@abeast1.com>,
"David Abrahams" <david.abrahams@rcn.com> writes:
> I agree that 14.6.4 is not a relevant section. To violate anything in
> section 14 there would have to be a core compiler bug. I don't believe there
> is one. I think you have a library bug.
I too believe that the core g++ compiler is working as required by
14.6.4 [temp.dep.res]. The reason I cited 14.6.4 in particular is
that it explains the correct behavior of the compiler related to
dependent name lookup in light of name spaces and templates. It is
the *library* that violates 14.6.4 through its use of an unqualified
name in the template implementation of a method that pulls a non-std
name space...
If fill<>() was not a template function in namespace std, then this
would be a non-issue, right? The only reason 14.6.4 can come into
play within a library implementation is when a user-provided template
argument can come from a name space other than std (in this case, it
arrives indirectly through vector<>, etc but the issue is the same).
Is my logic incorrect for citing 14.6.4? If so, which section(s)
should be cited?
Regards,
Loren
More information about the Gcc-prs
mailing list