
"Robert Ramey" <ramey@rrsd.com> writes:
On the other hand - I don't see the motivation for including concepts in the core language. Haven't we been able to implement concept checking with the current facilities of the library?
Concepts in the language go way beond checking. There's a great deal of mess that we deal with today because we don't have true concept support: everything from the perils of ADL, to the need for the "typename" and "template" keywords, to tag dispatching, which is really just a hack we invented to simulate concept-based overloading, to many uses of enable_if, will largely disappear from code written with in-language concept support.
It seems to me that the main problem these days with the C++ language these days is that its too hard to write a correct compiler for it. Making the core language fancier will only make this problem worse.
Actually, implementing concept support presents no great difficulty, as Doug has demonstrated by implementing ConceptGCC.
While, the commitee is at it - how about re-visiting two-phase lookup. Apparently there are enough implementers skeptical about it that they've declined to implement it.
AFAICT you just mean that Microsoft hasn't implemented it yet. All the other major compiler vendors who actually do work on their C++ front ends at a reasonable pace (I'm not counting Borland in that group) have got two-phase lookup implemented.
(for good reason in my opinion). I believe this is related to the "export" feature - which has also failed to gain traction.
No, it's not related to export; it was implemented so that outright errors in templates could be detected immediately where the template was defined, rather than later when it is instantiated. Two-phase lookup makes sense even for non-exported templates. An expression in a template that doesn't depend on the template parameters shouldn't change its meaning arbitrarily based on code that happens to come *after* the template definition. If you don't like that idea, you're probably not going to like in-language concept support, since it is capable of moving *all* the checking to phase 1. That's a major benefit.
So its seems to me that there are a number of issues more important/urgent than the ones currently being focused on.
I'm afraid it's the same old song: if you want the committee to focus on other issues, write a proposal that gets those issues on the table. -- Dave Abrahams Boost Consulting www.boost-consulting.com