J
James Kanze
You are free to fix any mistake that the article carries.
What's the point? If you want to cite something, it should at
least be an original source, which carries some weight.
You are free to fix any mistake that the article carries.
MiB said:Congratulations, folks. It took only three posts in this thread (OP,
my answer, and the riposte) to bazooka a beginner's request for
pointers to study material into a completely pointless vivisection of
the three letter acronym STL.
Bollocks , this is completely incorrect.Paavo Helde said:To me it seems quite appropriate to abbreviate "C++ STandard Library" as
STL. Maybe this is because I was not actively involved with C++ in 90-ties
and have never seen Standard Template Library distributed as a separate
library. Most people doing C++ programming are interested in the current
C++ standard library and not in the historic library from two decades ago.
You are actually seeing some sense on this I am glad to observe.James Kanze said:Pete Becker wrote:
MiB is correct, but note that many people use "STL" to refer
to the C++ STandard Library.
The C++ standard library encompasses a bit more components
than the STL[1]. If "many people" refer to the C++'s standard
library as "STL" then "many people" are making a mistake.
The C++ standard library is largely a "template" library.I think of it as three parts: the C library (which is a quite large
part!), the parts from (or compatible with) the original STL
(containers, iterators and algorithms), and some other stuff
(iostreams, locales, possibly std::string ...).Personally, when I say STL (which is rarely) I mean the second part.
You'd never hear me claim std:rintf is part of the STL.
Good point. The T in STL means template, so STL really
shouldn't refer to anything that isn't a template. For most
people I talk to, STL doesn't include the C library, and it
doesn't include some of the language support either (e.g. the
operator new functions, or the standard exceptions). And for
almost everyone, it does include the parts of Stepanov's library
which were included in the standard. Where the meaning varies
is whether additional templates in the standard library (e.g.
std::basic_string, or the iostreams or the locale stuff) is part
of STL or not, and for some people, whether parts of Stepanov's
library that didn't make it into the standard (like slist), or
templates which have since been added to Stepanov's library
(like rope or hash_map) are part of the STL. Usage varies, so
if you want to be precise, it's best to avoid the term.
--
Bollocks , this is completely incorrect.
Ah, yes, a very familiar problem.. But I looked back at the original post
and it says:
" ... but i actully dont know what stl really is (?)"
I find it hard to believe that in this day and age anyone would contrive an
acronym where the 'T' came from the word STandard; especially when there
used to be a particular meaning for STL. It would be as though someone came
up with a new language called COBOL. BTW, I think a language with such a
name would be DOA.
As near as I could tell, he wanted a link to an e-book, I
don't know of one. If he is willing to spend a few dollars,
he will not do better than _The C++ Standard Library_ by
Nicolai Josuttis.
James said:The acronym doesn't have an exact meaning for those who wish to
communicate precisely with other people.
There's no should in it. There's nobody who is making immutable
laws---even in French, the academie française can't stop the
evolution of language. It's just a fact of life.
They know their meaning, just as well as you know yours.
They might not have learned what it meant, but they know what it
means. At least in the community they're communicating with.
There's no ignorance or mistake about it. No one is required to
know the full etymology of a word in order to be able to use it.
All they have to know is how the person they're communicating
with will understand it.
Which has changed over time.
When I first heard it, it meant a
library developed and maintained by Stepanov, including some
things that aren't in the standard C++ library today. You're
meaning doesn't correspond to the original use.
It's not a mistake for people to use a common vocabulary, as
long as they understand one another.
Rui explained quite well why it's bollocks.James Kanze said:Who says so? Who even has the authority to say so? Language is
based on common usage; if everyone agrees that X means Y, then X
means Y. If not everyone agrees, then X is ambiguous. (Within
a given community, of course. When talking about C++,
"template" means something quite different than what a secretary
dealing with Word would understand.)
The issue is communicating, and redefining a term with your own
meaning doesn't improve communications. Thus, the meaning I
personally prefer for STL is the one Rui is arguing for, *but*
the meaning I personally prefer is really irrelevant; what
counts is how people use and understand the term in the
community I'm addressing. In the case of STL, that meaning is
ambiguous, so I avoid the term, speaking either of the standard
library, or Stepanov's original library.
--
James said:What's the point? If you want to cite something, it should at
least be an original source, which carries some weight.
Paavo said:So, are std::string and iostreams part of STL? Yes or no? The
std::string class design (particularly iterators) has been influenced by
Stepanov's work AFAIK. I'm not so sure about iostream iterators, but
they also sound similar.
You are trying to intellectualize and explain a failure to understand a
specific topic with appeals to the mutability of any languguage. It's
silly and disingenuous. No one can come here and claim that STL actually
means "super terrific library" or "strings, templates and lists" and then
proceed to try to defend that nonsense by claiming that, well, "you can't
stop the evolution of language".
If someone wastes bandwidth with claims that "STL means
STandard Library" then that person is both ignorant and
a troll.
If you criticize the messenger instead of the message then you
are better off not criticizing at all.
Rui said:The meaning, in this context, is clear to anyone. It's the subset of
C++'s standard library which deals with template data structures and
associated components and that has it's origins in Stepanov's work.
Gerhard said:Not necessarily. This is a meaning that is compatible with Stroustrup's
usage. However, there seems to be a number of people who use "STL" to
refer to the full extent of the original Standard Template Library, not
only the part that went into the C++ ISO standard.
There are enough of them to warrant a Wikipedia entry. Since you seem to
accept Wikipedia as reference, here it is...
http://en.wikipedia.org/wiki/STL_(disambiguation)
http://en.wikipedia.org/wiki/Standard_Template_Library
This means that we have at least two widely accepted definitions -- and
ambiguity.
Pete said:Formally, Clauses 23, 24, and 25: Containers, Iterators, and
Algorithms. Most people forget about algorithms...
On 2011-02-20 20:29:46 -0500, Rui Maciel said:
Formally, Clauses 23, 24, and 25: Containers, Iterators, and
Algorithms. Most people forget about algorithms...
Rui said:Understanding and acknowledging that the STL refers to C++'s standard
templated data structures is not "Stroustrup's usage". It's what it
is. It's only possible to state some other thing if a person failed
to understand what STL means and what it represents.
The second link you provided is an article which refers to the
Standard Template library. The first two sentences of that article
read as follows:
<quote> The Standard Template Library (STL) is a software library
partially included in the C++ Standard Library. It provides
containers, iterators, algorithms, and functors. </quote>
Therefore, there is no ambiguity. Two articles, only one definition,
which happens to coincide with the correct meaning.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.