C++ Survival Guide
This is a curated survival guide for C++ development organized by the community and people exactly like you. Use the information below to find your way to relevant content or jump in and contribute links to a blog, video, code sample, or other helpful information for the new or experienced C++ developer.
Information in this guide is not implementation specific. For the Visual C++ Survival Guide, click here.
How To Use This Guide
The C++ Survival Guide, like other survival guides in the TechNet Wiki, is a collection of links organized by theme, task or common element. To use the survival guide, use the table of contents to find your area of interest and then click to explore references and links. If you are more curious, scroll through the entire article looking for nuggets, stuff you might not have known or new blogs and bloggers to follow.
This guide is unique because it is a Wiki article. You can edit this article and add new information, new areas, or revise existing information. If you add a new top-level section use "H2" as the style and then choose one higher for each level down. Links are organized in simple lists with minimal formatting so contributing is simple. Share your experiences and help the community!
Getting Started
Introductory material and other general guidance for the beginner. Examples include overviews of the language, introductory texts, lectures, samples and material for developers familiar with other languages.
- Rule of Three on Wikipedia. If a class defines a destructor, copy constructor or copy assignment operator, it should define all three.
- rvalue references explained by Thomas Becker. "The nasty thing about rvalue references is that when you look at them, it is not at all clear what their purpose might be or what problems they might solve."
Containers
Information about using containers.
- Be the first to contribute! Add additional sub-sections as needed!
Standard Template Library
The Standard Template Library (STL) is a standardized library, mostly of classes, that is part of the C++ language standard and is typically provided with the compiler as source code files. Typically the portion of the STL used by a program is compiled with the program. Contrast that with the C Runtime Library that is typically provided with C and C++ as a library of compiled (machine language) code. The STL makes extensive use of the templates capability of C++ for the STL classes and therefore is a very powerful and flexible library in a relatively small amount of code.
The remainder of this section can provide the ins and outs of the STL. Add additional sub-sections as needed!
.Net and C++/CLR
Managed C++ Wrapper For Unmanaged Code
Community Resources
This section contains links to community resources that do not fit in one of the other specific categories. For example, if a blog focuses strictly on introductory material, it is probably a better fit under "getting started". On the other hand, if it is more of a generalist blog, it probably goes in this section (with links to specific articles in appropriate specific categories). If in doubt, put it anywhere! Sharing is better than editorial "correctness".
Blogs
Helpful blogs.
- C++ Next. Focuses on the cutting edge of C++.
- Andrzej's C++ blog. Guidelines and thoughts about C++ including articles on type inference, gotchas, constant initialization and more.
Code Review / Sharing
Sites that encourage developer collaboration on code snippets, samples and projects of any size.
- Stack Exchange Code Review Beta. Post code, receive feedback from the excellent Stack Exchange community of developers.