Skip to main content
GameDev.net gamedev.net
🔒 Locked

STL vs SC++L

Started by Alpha_ProgDes May 21, 2008 at 1:13 PM 6 replies 1.9k views
Original Post
Alpha_ProgDes
Alpha_ProgDes
Now what is exactly the difference between the two. Someone asked me to explain it and the best I could come up with is that SC++L is a C++ subset of the SGI STL library. Though, of course, I've been calling STL until a year or two ago, when people here started saying STL was the improper acronym for the C++ standard library. I tried Googling but SC++L doesn't resonate with Google's search engine.
Beginner in Game Development?  Read here. And read here.  
Oluseyi
Oluseyi
The Standard Template Library was an SGI development, proposed to the C++ Standard Committee. It was largely absorbed as is, though changed in certain places, and unified with carried over elements of the Standard C Library to yield the Standard C++ Library.

In other words, "STL" is a historical name/product. SC++L is what we use today.
dmatter
dmatter
Quote:
Original post by Alpha_ProgDes
the best I could come up with is that SC++L is a C++ subset of the SGI STL library.

You'd be closer to the mark by saying that the STL is a subset of the SC++L.
fpsgamer
fpsgamer
According to "The C++ Standard Library" by Josuttis. SC++L (The C++ Standard Library) is every piece of [standard] code that comes bundled with your C++ compiler. The STL is a subset of that code which includes things like std::vector, std::map, algorithms etc.

Something not considered part of the STL for example is std::string

I paraphrased of course.

This distinction hardly matters of course -- I prefer to refer to it as "The Standard Library"
Metorical
Metorical
I guess with modern languages it would be almost unthinkable to not include a standard library. It's certainly strange how it's evolved but I guess people will always say c++ and the STL rather than referring to the standard library.
daviangel
daviangel
Well personally this is the first time I've heard of the SC++L term myself but I still see STL used and don't know why people have issue with using that term if the differences are noted?
"The Standard Template Library (STL) is a subset of the C++ standard library, and contains the containers, algorithms, iterators, function objects, etc.; although some people use the term STL interchangeably with the C++ standard library."
Anyways this is how it's implemented in the MS C++ compiler according to MS:

Standard C++ Libraries Frequently Asked Questions
Q1: What does the Standard C++ library contain?

A1: The Standard C++ library provides an extensible framework and contains components for language support, diagnostics, general utilities, strings, locales, standard template library (containers, iterators, algorithms, and numerics), and input/output.

The Standard C++ library can be divided into the following categories:
1. Standard Template Library (STL) components provide a C++ program with access to a subset of the most widely-used algorithms and data structures. STL headers can be grouped into three major organizing concepts:
• Containers: template classes that support common ways to organize data, such as , , , , , , and .
• Algorithms: template functions for performing common operations on sequences of objects, such as , , and .
• Iterators: the glue that pastes algorithms and containers together, such as , , and .
2. Input/Output includes components for forward declarations of iostreams (), predefined iostreams objects (), base iostreams classes (), stream buffering (), stream formatting and manipulators (, , ), string streams (), and file streams ().
3. Other Standard C++ headers include:
• Language Support: components for common type definitions used throughout the library (), characteristics of the predefined types (, , ), functions supporting start and termination of a C++ program (), support for dynamic memory management (), support for dynamic type identification (), support for exception processing (), and other runtime support (, , , ).
• Diagnostics: components for reporting several kinds of exceptional conditions (),documenting program assertions (), and a global variable for error number codes ().
• Strings: components for string classes () and null-terminated sequence utilities (, , ).
• Localization: components that C++ programs may use to encapsulate cultural differences. The locale facility includes internationalization support for character classification and string collation, numeric, monetary, and date/time formatting and parsing, and message retrieval (, ).

[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
Hodgman
Hodgman
Quote:
Original post by dmatter
Quote:
Original post by Alpha_ProgDes
the best I could come up with is that SC++L is a C++ subset of the SGI STL library.

You'd be closer to the mark by saying that the STL is a subset of the SC++L.

Yeah, that's the way I look at it.

There's some zealots who would like to:
$ sed -i 's/STL/SC++L/g' /teh/intarweb

But "STL" is in common usage now (even C++ newbies at least associate the term with std::vector) and just means the generic (template) parts of the SC++L.

If you're gonna try and stop people saying "STL" you may as well fight "ATM machine" while you're at it ;)
Raghar
Raghar
I thought a STD C++ library is abreviated as a STD C++ library, not as a few letters that could mean anything. Using ++ sign in abreviations should be done with care.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.