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