public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-21 11:36 david.abrahams
0 siblings, 0 replies; 18+ messages in thread
From: david.abrahams @ 2001-07-21 11:36 UTC (permalink / raw)
To: gcc-gnats
>Number: 3759
>Category: libstdc++
>Synopsis: nonconforming use of unqualified std:: names
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jul 21 11:36:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: David Abrahams
>Release: GCC-3.0
>Organization:
>Environment:
Any
>Description:
the standard library uses many other standard library entities without explicit qualification. This is nonconforming.
>How-To-Repeat:
#include <vector>
struct fill {}; // comment out this line to compile successfully
struct y {};
void f()
{
std::vector<y> x(10);
x.insert(x.begin(), 10, y());
}
>Fix:
add std:: qualification to all uses of std::algorithms and classes within std::.
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-26 6:36 David Abrahams
0 siblings, 0 replies; 18+ messages in thread
From: David Abrahams @ 2001-07-26 6:36 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: "David Abrahams" <david.abrahams@rcn.com>
To: "Gabriel Dos Reis" <gdr@codesourcery.com>
Cc: "Gabriel Dos Reis" <gdr@codesourcery.com>,
<rittle@labs.mot.com>,
<gcc-bugs@gcc.gnu.org>,
<gcc-gnats@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: Thu, 26 Jul 2001 09:23:59 -0400
----- Original Message -----
From: "Gabriel Dos Reis" <gdr@codesourcery.com>
> "David Abrahams" <david.abrahams@rcn.com> writes:
> |
> | Loren's email doesn't seem to be concerned with the issue of whether the
> | library meets the spec, but with general GNU coding style guidelines in
> | which (I think) I have no stake.
>
> No. I don't think you undertand Loren's mail correectly. As I
> understand Loren's mail, the issue isn't just about GNU coding style
> -- he used elements from that coding style to justify qualification.
> His concerns, as I undertand it, is to come with a solution
To what? I'm not being (intentionally) obtuse here; it seems like he and you
are concerned with the use of explicit qualification. In the context of this
discussion, I am only concerned with getting the library to meet its spec.
Since there are other ways to do that than adding explicit qualification, it
doesn't seem like there's much for me to contribute to the discussion the
two of you want to have... unless I misunderstand something.
> and an additional "guiding principles" to the existing coding style.
As I wrote, I don't think I have a stake in that part of the discussion.
> | I wasn't planning to respond, but if you
> | think there is a point that merits my direct attention, please forward
me
> | the excerpt in question.
>
> I don't know exactly how I'm supposed to behave in face of such a
> condescending tone.
Wow, we really got off on the wrong foot here. I didn't mean to be
condescending. Maybe "merits" isn't the best word and I should have said
"warrants". In any case, I'm just trying to say that I don't think I can add
anything more useful to the discussion than I already have, and I didn't
notice any new opportunities for me to be helpful in Loren's message. If you
did, I'd like you to point me at them so I can try. Otherwise, I think, as
they say, "my work here is done".
-Dave
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-26 6:26 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-26 6:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: "David Abrahams" <david.abrahams@rcn.com>
Cc: "Gabriel Dos Reis" <gdr@codesourcery.com>, <rittle@labs.mot.com>,
<gcc-bugs@gcc.gnu.org>, <gcc-gnats@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 26 Jul 2001 15:15:51 +0200
"David Abrahams" <david.abrahams@rcn.com> writes:
| ----- Original Message -----
| From: "Gabriel Dos Reis" <gdr@codesourcery.com>
|
| > I undertand your position, even if we seem to disagree on the right fix.
| > I hope the (private) discussion between Loren, you and me will end up
| > with a agreement of what should be done and recommandations in C++STYLE.
|
| Loren's email doesn't seem to be concerned with the issue of whether the
| library meets the spec, but with general GNU coding style guidelines in
| which (I think) I have no stake.
No. I don't think you undertand Loren's mail correectly. As I
understand Loren's mail, the issue isn't just about GNU coding style
-- he used elements from that coding style to justify qualification.
His concerns, as I undertand it, is to come with a solution and an
additional "guiding principles" to the existing coding style.
| I wasn't planning to respond, but if you
| think there is a point that merits my direct attention, please forward me
| the excerpt in question.
I don't know exactly how I'm supposed to behave in face of such a
condescending tone.
-- Gaby
CodeSourcery, LLC http://www.codesourcery.com
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-26 6:16 David Abrahams
0 siblings, 0 replies; 18+ messages in thread
From: David Abrahams @ 2001-07-26 6:16 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: "David Abrahams" <david.abrahams@rcn.com>
To: "Gabriel Dos Reis" <gdr@codesourcery.com>
Cc: "Gabriel Dos Reis" <gdr@codesourcery.com>,
<rittle@labs.mot.com>,
<gcc-bugs@gcc.gnu.org>,
<gcc-gnats@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: Thu, 26 Jul 2001 09:00:01 -0400
----- Original Message -----
From: "Gabriel Dos Reis" <gdr@codesourcery.com>
> I undertand your position, even if we seem to disagree on the right fix.
> I hope the (private) discussion between Loren, you and me will end up
> with a agreement of what should be done and recommandations in C++STYLE.
Loren's email doesn't seem to be concerned with the issue of whether the
library meets the spec, but with general GNU coding style guidelines in
which (I think) I have no stake. I wasn't planning to respond, but if you
think there is a point that merits my direct attention, please forward me
the excerpt in question.
-Dave
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-26 5:56 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-26 5:56 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: "David Abrahams" <david.abrahams@rcn.com>
Cc: "Gabriel Dos Reis" <gdr@codesourcery.com>, <rittle@labs.mot.com>,
<gcc-bugs@gcc.gnu.org>, <gcc-gnats@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 26 Jul 2001 14:53:50 +0200
"David Abrahams" <david.abrahams@rcn.com> writes:
| Just to reiterate my position: regardless of the question of which names may
| be used unqualified, the library must meet its specification. The places
| where the question of the use of unqualified names are relevant are those
| where the library specification says that a particular function is used in
| the implementation of another function. Examples are in valarray and
| swap_ranges.
I undertand your position, even if we seem to disagree on the right fix.
I hope the (private) discussion between Loren, you and me will end up
with a agreement of what should be done and recommandations in C++STYLE.
-- Gaby
CodeSourcery, LLC http://www.codesourcery.com
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-26 5:46 David Abrahams
0 siblings, 0 replies; 18+ messages in thread
From: David Abrahams @ 2001-07-26 5:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: "David Abrahams" <david.abrahams@rcn.com>
To: "Gabriel Dos Reis" <gdr@codesourcery.com>
Cc: <rittle@labs.mot.com>,
"Gabriel Dos Reis" <gdr@codesourcery.com>,
<gcc-bugs@gcc.gnu.org>,
<gcc-gnats@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: Thu, 26 Jul 2001 08:36:13 -0400
----- Original Message -----
From: "Gabriel Dos Reis" <gdr@codesourcery.com>
> "David Abrahams" <david.abrahams@rcn.com> writes:
>
> The bottom line is that, we have an issue as to know which functions a
> library can use unqualified. As to now, there has been no definitive
> resolution. Oh yes, one can modify insert() to please you, but that
> doesn't answer the question of which function names the libray can use
> in an unqualified manner. The answer to that question is necessary
> before going changing function name uses willy-nilly.
I think we've reached an end of this debate. I understand that we disagree,
but I the use of the term "willy-nilly" and the question of pleasing me
personally is an unfair characterization. You understand the issue
differently from me. I can respect that. I even think you misunderstand the
issue, but I don't think you're being irresponsible, as the term
"willy-nilly" would imply.
Just to reiterate my position: regardless of the question of which names may
be used unqualified, the library must meet its specification. The places
where the question of the use of unqualified names are relevant are those
where the library specification says that a particular function is used in
the implementation of another function. Examples are in valarray and
swap_ranges. I filed a bug report against libstdc++ concerned with the
semantics of insert() and the large majority of other functions which are
not documented as calling other standard algorithms precisely because the
correctness of their implementation with respect to the standard is easy to
determine. I did not touch on the issue of valarray and swap_ranges because
the right thing to do, as Gaby implies, is not yet clear.
And now, with respect, I withdraw from this discussion.
Regards,
Dave
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-25 15:46 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-25 15:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: "David Abrahams" <david.abrahams@rcn.com>
Cc: <rittle@labs.mot.com>, "Gabriel Dos Reis" <gdr@codesourcery.com>,
<gcc-bugs@gcc.gnu.org>, <gcc-gnats@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 26 Jul 2001 00:42:44 +0200
"David Abrahams" <david.abrahams@rcn.com> writes:
The bottom line is that, we have an issue as to know which functions a
library can use unqualified. As to now, there has been no definitive
resolution. Oh yes, one can modify insert() to please you, but that
doesn't answer the question of which function names the libray can use
in an unqualified manner. The answer to that question is necessary
before going changing function name uses willy-nilly.
-- Gaby
CodeSourcery, LLC http://www.codesourcery.com
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-25 15:36 David Abrahams
0 siblings, 0 replies; 18+ messages in thread
From: David Abrahams @ 2001-07-25 15:36 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: "David Abrahams" <david.abrahams@rcn.com>
To: <rittle@labs.mot.com>,
"Gabriel Dos Reis" <gdr@codesourcery.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 18:20:40 -0400
----- Original Message -----
From: "Gabriel Dos Reis" <gdr@codesourcery.com>
> | Is my logic incorrect for citing 14.6.4? If so, which section(s)
> | should be cited?
>
> An unsopken rule which requires the library to adhere to the Principle
> of Least Surprise.
IMO it's the unspoken rule that the library behaves according to its
specification (do we really need to say that? THIS STANDARD MEANS WHAT IT
SAYS AND NOT SOMETHING ELSE). The specification does not say that if I
define a function called fill() whose semantics don't match the standard's
fill(), my fill funtion will be called when I try to insert into a vector,
and the semantics of vector::insert will be changed accordingly.
-Dave
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-25 14:56 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-25 14:56 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: rittle@labs.mot.com
Cc: david.abrahams@rcn.com, gdr@codesourcery.com, gcc-bugs@gcc.gnu.org,
gcc-gnats@gcc.gnu.org
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 25 Jul 2001 23:47:42 +0200
Loren James Rittle <rittle@latour.rsch.comm.mot.com> writes:
| 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...
No, as explained by Dave, the library didn't violate that rule
(14.6.4) -- that ruel can be used to explain why the library is
behaving that way, that at anyrate it didn't vilate that rule.
| Is my logic incorrect for citing 14.6.4? If so, which section(s)
| should be cited?
An unsopken rule which requires the library to adhere to the Principle
of Least Surprise.
-- Gaby
CodeSourcery, LLC http://www.codesourcery.com
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-25 14:16 Loren James Rittle
0 siblings, 0 replies; 18+ messages in thread
From: Loren James Rittle @ 2001-07-25 14:16 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
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
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-24 11:26 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-24 11:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: "David Abrahams" <david.abrahams@rcn.com>
Cc: "Gabriel Dos Reis" <gdr@codesourcery.com>, gcc-bugs@gcc.gnu.org,
gcc-gnats@gcc.gnu.org
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 24 Jul 2001 20:16:01 +0200
"David Abrahams" <david.abrahams@rcn.com> writes:
| I'm familiar with both issues, I promise ;-) I submitted them.
I know and I promise I closely follow the resolutions since I'm
concerned. I quote the notes so that other people can have a view of
what is the feeling of the LWG.
| > My personal view is that not all standard functions should be used
| > qualified or unqualified; therefore there ought to be a list of which
| > functions are subject to Koenig lookup.
|
| Agreed. However, that still gives no leeway for the standard library
| implementation of vector<T,A> to attempt to call fill without qualification.
As to now, there is no wording that it should or it should not --
which is why we have a DR in the first place. Certainly, one can
extrapolate, but which functions should be used qualified or
unqualified is still not known.
-- Gaby
CodeSourcery, LLC http://www.codesourcery.com
^ permalink raw reply [flat|nested] 18+ messages in thread
* libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-24 11:06 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-24 11:06 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: gcc-bugs@gcc.gnu.org
Cc: gcc-gnats@gcc.gnu.org
Subject: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 24 Jul 2001 20:00:13 +0200
"David Abrahams" <david.abrahams@rcn.com> writes:
| ----- Original Message -----
| From: "Gabriel Dos Reis" <gdr@codesourcery.com>
| To: "David Abrahams" <david.abrahams@rcn.com>
| Cc: <ljrittle@gcc.gnu.org>; "Gabriel Dos Reis" <gdr@codesourcery.com>;
| <gcc-bugs@gcc.gnu.org>; <gcc-gnats@gcc.gnu.org>; <nobody@gcc.gnu.org>
| Sent: Tuesday, July 24, 2001 1:12 PM
| Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
|
|
| > "David Abrahams" <david.abrahams@rcn.com> writes:
| >
| > | There are open issues related to the problem I illustrated, but there's
| > | agreement in the LWG that an implementation has no right to exhibit the
| > | behavior I illustrated.
| >
| > The problem you reported is specifically issue #225 which is still
| > open. I'm not saying your problem is a non-issue. The problem,
| > if there is one, is in the Standard.
|
| I disagree. I agree with the LWG consensus from Toronto note you quoted
| below - that there's no standard defect. The problem IMO is in libstd-c++.
I do not agree. See Issue #229.
[Post-Tokyo: Steve Clamage submitted this issue at the request of the
LWG to solve a problem in the standard itself similar to the problem
within implementations of library identified by issue 225. Any
resolution of issue 225 should be coordinated with the resolution of
this issue.]
[post-Toronto: Howard is undecided about whether it is appropriate for
all standard library function names referred to in other standard
library functions to be explicitly qualified by std: it is common
advice that users should define global functions that operate on their
class in the same namespace as the class, and this requires
argument-dependent lookup if those functions are intended to be called
by library code. Several LWG members are concerned that valarray
appears to require argument-dependent lookup, but that the wording may
not be clear enough to fall under "unless explicitly described
otherwise".]
My personal view is that not all standard functions should be used
qualified or unqualified; therefore there ought to be a list of which
functions are subject to Koenig lookup.
-- Gaby
CodeSourcery, LLC http://www.codesourcery.com
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-24 10:46 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-24 10:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: "David Abrahams" <david.abrahams@rcn.com>
Cc: "Gabriel Dos Reis" <gdr@codesourcery.com>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 24 Jul 2001 19:37:25 +0200
"David Abrahams" <david.abrahams@rcn.com> writes:
| ----- Original Message -----
| From: "Gabriel Dos Reis" <gdr@codesourcery.com>
| To: "David Abrahams" <david.abrahams@rcn.com>
| Cc: <ljrittle@gcc.gnu.org>; "Gabriel Dos Reis" <gdr@codesourcery.com>;
| <gcc-bugs@gcc.gnu.org>; <gcc-gnats@gcc.gnu.org>; <nobody@gcc.gnu.org>
| Sent: Tuesday, July 24, 2001 1:12 PM
| Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
|
|
| > "David Abrahams" <david.abrahams@rcn.com> writes:
| >
| > | There are open issues related to the problem I illustrated, but there's
| > | agreement in the LWG that an implementation has no right to exhibit the
| > | behavior I illustrated.
| >
| > The problem you reported is specifically issue #225 which is still
| > open. I'm not saying your problem is a non-issue. The problem,
| > if there is one, is in the Standard.
|
| I disagree. I agree with the LWG consensus from Toronto note you quoted
| below - that there's no standard defect. The problem IMO is in libstd-c++.
I do not agree. See Issue #229.
[Post-Tokyo: Steve Clamage submitted this issue at the request of the
LWG to solve a problem in the standard itself similar to the problem
within implementations of library identified by issue 225. Any
resolution of issue 225 should be coordinated with the resolution of
this issue.]
[post-Toronto: Howard is undecided about whether it is appropriate for
all standard library function names referred to in other standard
library functions to be explicitly qualified by std: it is common
advice that users should define global functions that operate on their
class in the same namespace as the class, and this requires
argument-dependent lookup if those functions are intended to be called
by library code. Several LWG members are concerned that valarray
appears to require argument-dependent lookup, but that the wording may
not be clear enough to fall under "unless explicitly described
otherwise".]
My personal view is that not all standard functions should be used
qualified or unqualified; therefore there ought to be a list of which
functions are subject to Koenig lookup.
-- Gaby
CodeSourcery, LLC http://www.codesourcery.com
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-24 10:36 David Abrahams
0 siblings, 0 replies; 18+ messages in thread
From: David Abrahams @ 2001-07-24 10:36 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: "David Abrahams" <david.abrahams@rcn.com>
To: "Gabriel Dos Reis" <gdr@codesourcery.com>
Cc: <ljrittle@gcc.gnu.org>,
"Gabriel Dos Reis" <gdr@codesourcery.com>,
<gcc-bugs@gcc.gnu.org>,
<gcc-gnats@gcc.gnu.org>,
<nobody@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: Tue, 24 Jul 2001 13:24:50 -0400
----- Original Message -----
From: "Gabriel Dos Reis" <gdr@codesourcery.com>
To: "David Abrahams" <david.abrahams@rcn.com>
Cc: <ljrittle@gcc.gnu.org>; "Gabriel Dos Reis" <gdr@codesourcery.com>;
<gcc-bugs@gcc.gnu.org>; <gcc-gnats@gcc.gnu.org>; <nobody@gcc.gnu.org>
Sent: Tuesday, July 24, 2001 1:12 PM
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
> "David Abrahams" <david.abrahams@rcn.com> writes:
>
> | There are open issues related to the problem I illustrated, but there's
> | agreement in the LWG that an implementation has no right to exhibit the
> | behavior I illustrated.
>
> The problem you reported is specifically issue #225 which is still
> open. I'm not saying your problem is a non-issue. The problem,
> if there is one, is in the Standard.
I disagree. I agree with the LWG consensus from Toronto note you quoted
below - that there's no standard defect. The problem IMO is in libstd-c++.
> I do not agree with the description that we are violating 14.6.4.
> Such a "violation" is a result of a possible inconsistency in the
> Standard not a V3 internal inconsistency.
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.
> For latter reference, I'll cite the notes from Tokyo and Toronto
> meetings:
>
> [Tokyo: The LWG agrees that this is a defect in the standard, but is as
> yet unsure if the proposed resolution is the best solution.
> Furthermore, the LWG believes that the same problem of unqualified
> library names applies to wording in the standard itself, and has
> opened issue 229 accordingly. Any resolution of issue 225 should be
> coordinated with the resolution of issue 229.]
>
> [Toronto: The LWG is not sure if this is a defect in the
> standard. Most LWG members believe that an implementation of
> std::unique like the one quoted in this issue is
> already illegal, since, under certain circumstances, its semantics are
> not those specified in the standard. The standard's description of
> unique does not say that overloading
> adjacent_find should have any effect.]
>
> -- Gaby
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-24 10:16 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-24 10:16 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: "David Abrahams" <david.abrahams@rcn.com>
Cc: <ljrittle@gcc.gnu.org>, "Gabriel Dos Reis" <gdr@codesourcery.com>,
<gcc-bugs@gcc.gnu.org>, <gcc-gnats@gcc.gnu.org>, <nobody@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 24 Jul 2001 19:12:09 +0200
"David Abrahams" <david.abrahams@rcn.com> writes:
| There are open issues related to the problem I illustrated, but there's
| agreement in the LWG that an implementation has no right to exhibit the
| behavior I illustrated.
The problem you reported is specifically issue #225 which is still
open. I'm not saying your problem is a non-issue. The problem,
if there is one, is in the Standard.
I do not agree with the description that we are violating 14.6.4.
Such a "violation" is a result of a possible inconsistency in the
Standard not a V3 internal inconsistency.
For latter reference, I'll cite the notes from Tokyo and Toronto
meetings:
[Tokyo: The LWG agrees that this is a defect in the standard, but is as
yet unsure if the proposed resolution is the best solution.
Furthermore, the LWG believes that the same problem of unqualified
library names applies to wording in the standard itself, and has
opened issue 229 accordingly. Any resolution of issue 225 should be
coordinated with the resolution of issue 229.]
[Toronto: The LWG is not sure if this is a defect in the
standard. Most LWG members believe that an implementation of
std::unique like the one quoted in this issue is
already illegal, since, under certain circumstances, its semantics are
not those specified in the standard. The standard's description of
unique does not say that overloading
adjacent_find should have any effect.]
-- Gaby
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-24 10:06 David Abrahams
0 siblings, 0 replies; 18+ messages in thread
From: David Abrahams @ 2001-07-24 10:06 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: "David Abrahams" <david.abrahams@rcn.com>
To: <ljrittle@gcc.gnu.org>,
"Gabriel Dos Reis" <gdr@codesourcery.com>
Cc: <gcc-bugs@gcc.gnu.org>,
<gcc-gnats@gcc.gnu.org>,
<nobody@gcc.gnu.org>
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: Tue, 24 Jul 2001 12:51:16 -0400
There are open issues related to the problem I illustrated, but there's
agreement in the LWG that an implementation has no right to exhibit the
behavior I illustrated. The fact that we're discussing related things
doesn't change that.
-Dave
----- Original Message -----
From: "Gabriel Dos Reis" <gdr@codesourcery.com>
To: <ljrittle@gcc.gnu.org>
Cc: <david.abrahams@rcn.com>; <gcc-bugs@gcc.gnu.org>;
<gcc-gnats@gcc.gnu.org>; <nobody@gcc.gnu.org>
Sent: Tuesday, July 24, 2001 4:53 AM
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
> ljrittle@gcc.gnu.org writes:
>
> | Synopsis: nonconforming use of unqualified std:: names
> |
> | State-Changed-From-To: open->analyzed
> | State-Changed-By: ljrittle
> | State-Changed-When: Mon Jul 23 16:23:56 2001
> | State-Changed-Why:
> | We violate section 14.6.4 of C++98 in the library
> | implementation in any case where we use functions
> | available from namespace std that are being treated
> | as "dependent names".
>
> To be more precise, this is an open issue
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-24 9:36 Gabriel Dos Reis
0 siblings, 0 replies; 18+ messages in thread
From: Gabriel Dos Reis @ 2001-07-24 9:36 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libstdc++/3759; it has been noted by GNATS.
From: Gabriel Dos Reis <gdr@codesourcery.com>
To: ljrittle@gcc.gnu.org
Cc: david.abrahams@rcn.com, gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org,
nobody@gcc.gnu.org
Subject: Re: libstdc++/3759: nonconforming use of unqualified std:: names
Date: 24 Jul 2001 10:53:05 +0200
ljrittle@gcc.gnu.org writes:
| Synopsis: nonconforming use of unqualified std:: names
|
| State-Changed-From-To: open->analyzed
| State-Changed-By: ljrittle
| State-Changed-When: Mon Jul 23 16:23:56 2001
| State-Changed-Why:
| We violate section 14.6.4 of C++98 in the library
| implementation in any case where we use functions
| available from namespace std that are being treated
| as "dependent names".
To be more precise, this is an open issue
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: libstdc++/3759: nonconforming use of unqualified std:: names
@ 2001-07-23 16:23 ljrittle
0 siblings, 0 replies; 18+ messages in thread
From: ljrittle @ 2001-07-23 16:23 UTC (permalink / raw)
To: david.abrahams, gcc-bugs, gcc-prs, nobody
Synopsis: nonconforming use of unqualified std:: names
State-Changed-From-To: open->analyzed
State-Changed-By: ljrittle
State-Changed-When: Mon Jul 23 16:23:56 2001
State-Changed-Why:
We violate section 14.6.4 of C++98 in the library
implementation in any case where we use functions
available from namespace std that are being treated
as "dependent names".
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3759&database=gcc
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2001-07-26 6:36 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-21 11:36 libstdc++/3759: nonconforming use of unqualified std:: names david.abrahams
2001-07-23 16:23 ljrittle
2001-07-24 9:36 Gabriel Dos Reis
2001-07-24 10:06 David Abrahams
2001-07-24 10:16 Gabriel Dos Reis
2001-07-24 10:36 David Abrahams
2001-07-24 10:46 Gabriel Dos Reis
2001-07-24 11:06 Gabriel Dos Reis
2001-07-24 11:26 Gabriel Dos Reis
2001-07-25 14:16 Loren James Rittle
2001-07-25 14:56 Gabriel Dos Reis
2001-07-25 15:36 David Abrahams
2001-07-25 15:46 Gabriel Dos Reis
2001-07-26 5:46 David Abrahams
2001-07-26 5:56 Gabriel Dos Reis
2001-07-26 6:16 David Abrahams
2001-07-26 6:26 Gabriel Dos Reis
2001-07-26 6:36 David Abrahams
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).