The Artima Developer Community
Sponsored Link

The C++ Source
A Pause to Reflect: Five Lists of Five, Part III
The Most Important C++ Software...Ever
by Scott Meyers
August 23, 2006


In this article, Scott Meyers shares his picks for the five most important software packages in the history of C++, along with why he chose them.

In my first two articles in this series, I named my picks for the most important contributions to C++ in the categories of books and non-book publications:

In this third installment, I will turn my attention to the most important C++ software...ever.

To write software in C++, you need tools to help you do it. In my view, those tools have been (and continue to be) the most important software related to C++. One can imagine one or more blockbuster applications developed in C++ that drove hordes of people to choose the language for future projects, but I’m not aware of that ever happening. The most important software for the language has been the bread-and-butter stuff of the software development crowd: compilers and libraries. Perhaps this is fitting for a language designed more for writing libraries than for writing applications.

My picks for the five most important pieces of software in the history of C++, ordered chronologically by first appearance, are:

Now, software tools have been critical to the success of C++, but in the end, pretty much everything boils down to people. That’s as true of C++ as of any other human endeavor. In my next installment in this series of articles, I’ll tell you who I think have been the most important people—the titans of the world of C++.5

Share Your Opinion

Discuss this article in the Articles Forum topic, The Most Important C++ Software...Ever.

End Notes

1. By “parse,” I mean more than simply building an abstract syntax tree. I also mean performing implicit template instantiation, resolving calls to overloaded functions, etc. This means I’m conflating parsing and semantic analysis, but the entry point for many powerful C++ tools is the results of semantic analysis, and in common parlance, people often refer to that entire process as “parsing.”

2. Because the community is too large and too diverse to allow meaningful claims about the behavior of “most programmers.”

3. “The Unix language” was Java. I have no idea what the Apple language was.

4. These 10 components are (in a mixture of my own and TR1’s terminology) reference wrappers, smart pointers, enhanced member pointer adapters (mem_fn), enhanced binders (bind), generalized Functors (function), type traits, random numbers, tuples, fixed-size arrays, and regular expressions.

5. Everyone agrees that titans are powerful, but my wife, a student of classics, can’t help but remind me that though the titans were strong, they had more in the way of brawn than brain. That’s why they came in second in their struggle with the gods of Olympus (Zeus and his crew.) I’ll leave it up to you to determine whether there’s a parallel with C++, and, if so, who or what plays the role of the Olympians.


Part I in this series, “The Most Important C++ Books...Ever”:

Part II, “The Most Important C++ Non-Book Publications...Ever”:

Edison Design’s July 2006 document that mentions their Cfront-compatibility mode:

GCC by the GNU Project:

Article reporting that Michael Tiemann sometimes held meetings at Cygnus in a hot tub:


Visual C++ by Microsoft:

The Libraries at Boost:

Scott Meyers is the author of Effective C++, the third edition of which was published in 2005. It is available on at:

Scott Meyers is also the author of More Effective C++, which is available on at:

Scott Meyers is also the author of Effective STL, which is available on at:

Scott Meyers’ home page:

About the Author

Scott Meyers Scott Meyers is one of the world’s foremost authorities on C++; he provides training and consulting services to clients worldwide. He wrote the best-selling Effective C++ series (Effective C++, More Effective C++, and Effective STL), designed the innovative Effective C++ CD, is Consulting Editor for Addison Wesley’s Effective Software Development Series, and serves on the Advisory Board for The C++ Source ( He has a Ph.D in Computer Science from Brown University. His web site is

Sponsored Links

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use