That's a catchy sound bite, and I rarely disagree with James.
But indulge me a moment to say why I think it isn't accurate
or fair.
Of course. It was meant as a catchy sound bite, and not a
technical discussion. It was in response to something which was
basically similar in tone. In practice, people (and companies)
expend effort on what they decide, and not expending it on one
side doesn't mean expending it on another.
The time for technical discussions on this subject is over. I
disagree with the decision, but the compiler vendors have voted,
and unless some compiler implementors really do implement
export, it really doesn't matter what the standard decides to
do. I feel somewhat "had" by the compiler vendors (all of
them), because export addresses a real problem, and I'd have
rather the committee left it alone until a better solution to
the problem was adopted. I also feal that the fact that
implementers have refused to implement it (except EDG) sets a
bad precedent: what new feature in the next standard will they
decide not to implement? What's the point in even having a
standard if implementers only choose from it, and don't attempt
to implement everything?
[...]
As with most proposals, the biggest thing holding back the modules
proposal was itself -- that it wasn't ready for standardization,
I understand this. For the present, it isn't really ripe for
standardization, because it is so new. That argument, of
course, could be offered for most of the "improvements" in the
1998 standard: namespaces, two phase look-up, etc. And
"export". There are serious arguments why all of these should
NOT have been in the 1998 standard. But that's water under the
bridge, and presumably, the committee has learned from the
problems it caused first time around: export, obviously, but in
many ways, two phased lookup has caused more problems.
In many ways, two phased lookup is like export: it attempts to
solve a real problem; it may not be the best, or even a good
solution; and a lot of people don't consider it an important
problem. The main difference is that compiler writers did try
to implement it, with different degrees of success, with the
results that even today, it causes no end of portability
problems. (At least with export, you can say that all of the
vendors are at the same level
.)
[...]
I think it's fair to say that nearly everyone (including me)
still wants modules to succeed to get right rid of the header
file text inclusion model, but that most people (including me)
are deeply afraid of messing with something as fundamental as
the C++ build model without real world experience.
I totally agree with that point of view. I just think that
export could have been left in until we got there. Practically,
it makes no real difference (since I can't use it in portable
code), but it is a way of formally acknowledging the problem,
and perhaps motivating some to work harder on modules (so that
they could get rid of export).
But there are certainly more important issues, and I wouldn't
vote against the FCD on those grounds.