C++17, also known as "ISO/IEC 14882:2017," is a version of the C++ programming language. It is the successor to C++14 and was standardized by the International Organization for Standardization (ISO) in 2017.
C++17 introduces several new features and improvements to the language, aiming to make C++ code more expressive, concise, and efficient. Some of the key additions and enhancements in C++17 include:
- Structured Bindings - Allows unpacking of structured types (such as tuples or arrays) into individual variables using a more concise syntax.
- if/switch with Initialization - Allows variables to be defined and initialized within the condition of if and switch statements.
- constexpr if - Introduces compile-time conditional statements, enabling selective compilation of code based on
- Inline Variables - Enables the definition of variables inside a class definition, making it easier to define constants or small utility objects.
- Range-based for loop with initializer - Allows the initialization of the loop variable directly within the range-based for loop.
- Fold Expressions - Simplifies the handling of variadic templates by providing a concise syntax for operations such as folding a parameter pack with a binary operator.
- Structured Attributes - Adds attributes to enable structured bindings and other constructs to be used with standard attributes like
- Parallel Algorithms - Introduces standard parallel algorithms to leverage multi-core processors efficiently.
- Filesystem Library - Provides a standardized library for file system operations, including file and directory manipulation, path handling, and file metadata.
- Standardized Attributes - Adds new standard attributes, like
fallthrough, to improve code clarity and maintainability.
These are just a few of the new features and enhancements introduced in C++17. The goal of C++17 was to improve developer productivity, enhance the language capabilities, and provide more straightforward and safer ways to write C++ code.
Install C++ 17 on Linux
To install C++17 on Linux, you need to ensure that you have a compatible compiler. Here's a step-by-step guide to installing C++17 on Linux using the GNU Compiler Collection (GCC):
Update Package Manager - Open a terminal and update your package manager to ensure you have the latest package information:
sudo apt update
Install GCC - If you haven't installed GCC already, you can install it using the following command:
sudo apt install build-essential
Check GCC Version: Verify that GCC is installed and check the version by running:
Ensure that the version displayed is 7 or later.
If an older version is installed, you may need to update your Linux distribution or manually install a newer version of GCC.
Install C++17 Support - By default, recent versions of GCC support C++17. However, you may need to specify the C++17 standard explicitly while compiling. To do this, add the
-std=c++17 flag to your compiler commands.
For example, to compile a C++ source file named
example.cpp with C++17 support, use the following command:
g++ -std=c++17 -o example example.cpp
example.cpp with the actual filename of your C++ source code. The
-o flag specifies the output filename (in this case,
Compile and Run C++17 Programs: With the
-std=c++17 flag set, you can now compile and run C++17 programs using the GCC compiler. For example, if you have a file named
example.cpp, you can compile and run it as follows:
g++ -std=c++17 -o example example.cpp ./example
example.cpp with the actual filename of your C++ source code.
That's it! You have installed C++17 support and can now compile and run C++ programs using the C++17 standard on Linux.