The standard makes this distinction, I did not invented it.
I never said, nor implied, that you invented it. I merely observed that
the apparent contradiction in your statement (pointed out by Richard Bos)
is adequately explained if you consider that distinction, which is indeed
part of the language.
I do not think so. Modern C software design can be quite sophisticated.
Why should we stay at the level of, say, strcpy?
Because that has been a goal of the design of the library for quite some
time.
Imposing a fair amount of overhead, in terms of:
* conceptual complexity
* code required to implement or use
* storage
* runtime
The goal was to have an extremely flexible design that can accomodate
further enhancements without making old code obsolete. True, for a
simple linked list it looks too heavy, but the advantages of a standard
container is that it makes all programs *compatible* by allowing data
interchange in a standard way.
I don't see how it does. Interchange between programs relies on IPC, and
I can't simply send someone else my raw data structures -- if they don't
have the functions to which I have function pointers in my containers, then
that won't work.
Of course if you just want a simple linked list it is top heavy. Writing
a red/black tree implementation or a dictionary is not the same however,
and even if the syntax looks forbidding at first sight thebgains come
with regular use.
That's possible. I think you might well be right that having this tool
around would be of use to people; the big issue, I think, is that it's not
clear that it's enough use to justify adding it to the spec, rather than
publishing it as a separate library.
We gain huge utility from the existence of zlib, but that doesn't mean that
ISO should standardize on it.
I do not think that newbies are the problem here. It is rather the
oldbies (
) like me that have this FED UP feeling when they start
coding the 100th linked list implementation...
That could be a point, but I'm not sure how this mandates a language change
rather than merely a provided third-party library.
-s