![]() The Hello World program in C++, compiled with clang++ | |
Release Status | Maintained |
---|---|
Last Release | C++23 |
Language(s) | C++ |
Developer(s) | Standard C++ Foundation |
Website | https://isocpp.org/ |
C++ is a high-level multi-use programming language built on top of the C programming Language to add Object-Oriented Programming features.[1] Originally developed by Bjarne Stroustrup in 1985, from its inception, C++ was designed with key principles in mind: efficient resource usage, high performance, and exceptional flexibility.[2] By the release of C++98 in 1997, the language had evolved significantly, incorporating advanced features like functional programming capabilities and enhanced low-level memory manipulation. These additions greatly expanded its utility, making it a foundational language for developing major operating systems like Linux and Windows, as well as various microcomputer applications.[3] Today, C++ is a wide-spread language, found in a vast array of applications. It powers everything from desktop applications and high-performance video games to robust server systems and precision-critical software. Its versatility has made it a common choice for demanding computing tasks.[4]
C++ is predominantly used as a compiled language, meaning its source code is translated into machine-readable instructions before execution. Numerous companies and vendors offer C++ compilers. Notable examples include g++
from the GNU Compiler Collection and clang++
from LLVM, along with compilers distributed by major tech players like Microsoft, Intel, and IBM.[5]
Despite its widespread adoption, powerful functionality, and flexibility, C++ does face criticism within the programming community. Prominent figures, such as Linus Torvalds, the creator of the Linux Kernel[6], have voiced concerns about certain aspects of the language, among other notable voices.
Since 2012, C++ has followed a predictable three-year release schedule for new versions of its standard. Currently, the active standard is C++23, and the next anticipated release, following this established pattern, will be C++26. This consistent release cycle allows developers and compiler implementers to plan for upcoming features and changes.[7]
Compatibility
With different vendors producing different compilers, there is bound to be some incompatibility. Yet C++ standards committee members have overall decided it was best that the implementation of fixes for a couple of common problems found in many compilers to be solved by the compiler without having a "standardized" way of doing so.
It should also be noted that C++ is not just a version of C with more features. In other words, valid C code might not exactly be valid in C++. Many common examples include OOP features such as classes. The term class
in C++ can be used as a variable name in a C program.[8]
Installation
To install support for the C++ Language, ensure you have a viable compiler, it is likely you already have a compiler on a Linux System, to check, you can run:
[user] $ g++ --version
g++ (GCC) 15.1.1 20250425
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If you do not have a compiler, you can install one using your distributions package manager OR you can directly download it from source, these commands will download the GCC-Suite (aka, gcc, g++, etc).
[user] $ sudo apt install build-essential # for apt (Ubuntu/Ubuntu-based)
[user] $ sudo pacman -S base-devel # for pacman (Arch)
[user] $ sudo dnf install gcc-c++ # for dnf (Red Hat/Fedora)
[user] $ sudo xbps-install base-devel # for xbps (Void)
...
[user] $ g++ --version # To verify the installation.
- ↑ Bjarne Stroustrup, The University of Edinburgh - The Essence of C++: https://www.youtube.com/watch?v=86xWVb4XIyE
- ↑ Bjarne Stroustrup - The C++ Programming Language:https://archive.org/details/cprogramminglang00stro_0
- ↑ Bjarne Stroustrup, C++ Applications: https://www.stroustrup.com/applications.html (Accessed 8/2/2025)
- ↑ ISO/IEC 14882:2024: https://www.iso.org/standard/83626.html
- ↑ Wikipedia, Category: C++ Compilers https://en.wikipedia.org/wiki/Category:C%2B%2B_compilers (Accessed 8/2/2025)
- ↑ Linus Torvalds, LWN.net, Re: [RFC] Convert builin-mailinfo.c to use The Better String Library.: https://lwn.net/Articles/249460/ (Accessed 8/2/2025)
- ↑ Rohit Sharma, C++: Where It's Heading and It's New Features: https://dzone.com/articles/c-where-is-it-heading-and-what-are-the-new-feature (Accessed 8/2/2025)
- ↑ Itanium C++ ABI: https://itanium-cxx-abi.github.io/cxx-abi/ (Accessed 8/2/2025)