The following outline is provided as an overview of and topical guide to C++:
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell Labs as an enhancement to the C language.

What type of language is C++?

C++ can be described as all of the following:

Programming language — artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely. Compiled language — programming language implemented through compilers (translators which generate machine code from source code), and not interpreters (step-by-step executors of source code, where no translation takes place). General-purpose programming language — programming language designed to be used for writing software in a wide variety of application domains. Intermediate language — language of an abstract machine designed to aid in the analysis of computer programs. The term comes from their use in compilers, where a compiler first translates the source code of a program into a form more suitable for code-improving transformations, as an intermediate step before generating object or machine code for a target machine. Object-oriented programming language – programming language based on "objects", which are data structures that contain data, in the form of fields, often known as attributes; and code, in the form of procedures, known as methods. An object's procedures can access and modify the data fields of the objects. In object-oriented programming, computer programs are designed by making them out of objects that interact with one another. Statically typed programming language
General C++ concepts
Name resolution
Argument-dependent name lookup — applies to the lookup of an unqualified function name depending on the types of the arguments given to the function call. This behavior is also known as Koenig lookup, named after its inventor Andrew Koenig (programmer). Auto-linking — mechanism for automatically determining which libraries to link to while building a C or C++ program. It is activated by means of #pragma comment(lib, <name>) statements in the header files of the library. Classes — Classes define types of data structures and the functions that operate on those data structures. Instances of these datatypes are known as objects and can contain member variables, constants, member functions, and overloaded operators defined by the programmer. The C++ programming language allows programmers to separate program-specific datatypes through the use of classes. Exception guarantees Header file Inner class One Definition Rule Opaque pointer Plain old data structure Rule of three (C++ programming) Run-time type information Sequence point Single compilation unit Special member functions Substitution failure is not an error Template (C++) Template metaprogramming Traits class Undefined behavior Virtual function calls
Issues
Compatibility of C and C++
C++ Toolchain
C++ compilers
C++ libraries
C++ Standard Library
The C++ standard library is a collection of utilities that are shipped with C++ for use by any C++ programmer. It includes input and output, multi-threading, time, regular expressions, algorithms for common tasks, and less common ones (find, for_each, swap, etc.) and lists, maps and hash maps (and the equivalent for sets) and a class called vector that is a resizable array. Many other functions are provided by the standard library, but mainly in a form designed for building on top of to create third party libraries. Standard Template Library (STL)





