|> (e-mail address removed) (Daveed Vandevoorde) writes:
|> [...]
|> | (Note that two-phase name lookup predates export by quite a bit.
|> | ADL was the result of a generalization for the sake of export, and
|> | that affected the details of two-phase name lookup when export was
|> | added to the language. However, the gist of two-phase name lookup
|> | was already described in D&E back in 1994.)
|> Thanks for hammering this point again. There have been some myths
|> about two-phase name lookup as a consequence of "export", even from
|> some "old timer" C++ experts.
I'm curious about this, because I've never heard the claim that
two-phased lookup was a consequence of "export". A lot of us missed its
initial introduction, for I really don't know what reasons.
Of course, the real problem is that most compilers don't, or until very
recently didn't implement either. And that while there was a good deal
of discussion concerning export, very little was said about the fact
that their name lookup wasn't conform.
|> I would complement your answer by providing a link to one of the
|> first, publically available mailings, that was already discussing
|> two-phase name lookup:
|>
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/1992/N0209.pdf
|> That paper has the date "November 1992" and states
|> Most of the background of this paper is derived from a lengthy
|> discussion by the authors in May 1992, and subsequent electronic
|> communication which discussed and reworked the original summary
|> of that meeting.
No one not in the standards committee would have seen the paper, and
those not involved in the extensions group probably wouldn't have read
it. It's hardly a reference for the casual user.
Of course, I would expect anyone actually implementing a compiler to
have seen it. Which sort of makes one wonder -- in Noverber 1992, there
weren't that many implementations which actually supported templates.
That CFront didn't take this paper or the discussions which preceded it
into account is quite understandable, but what is the excuse of the
other implementors.
Because, of course, the biggest single reason we have such a problem
with two phase lookup is that it is different from what we are used to,
and what we have been using for the past eight or ten years.