Advantages
- Allows high-level abstractions, such as object-oriented programming
- Very high execution performance, rivaled only by assembly language
- Very low resource usage
- Can access virtually any software and hardware components
- Allows the use of template functions and template classes (solved at compile-time, no performance penalty is induced)
Disadvantages
- Low-level capabilities often result in unintended programming errors
- More difficult to maintain due to source code organization (headers / source)
Components
- Standard C++ Library (headers without an extension: iostream, fstream, algorithm, vector etc.)
- Standard C Library (headers ending in .h: stdio.h, stdlib.h, math.h, time.h etc.)
Development tools
- Microsoft Visual Studio
- CodeBlocks
- Eclipse
- NetBeans
- other
Most IDEs can be configured to use any compiler with a bit of extra work, the most common ones being the Visual C++ compiler, MingW, LLVM and GCC. Or, if you feel like an IDE is slowing you down, simply use a text editor and your favorite compiler 🙂