Introduction to C++

This post is an introduction to C++.

C++ is an adaptation of C to the object-oriented paradigm.

It was originally developed by Bjarne Stroustrup.

C++ Versions and Standards

There are different standard versions of C++. Each version is standardized through an ISO/IEC standard.

There is an ISO C++ Committee that work on the standardization. The official name is ISO/IEC JTC1/SC22/WG21 , but it is commonly referred as WG21 (Working Group 21).

C++ Source Editors and IDEs

List of C++ Source Editors and IDEs:

  • Code::Blocks
  • Eclipse IDE
  • Visual Studio Code
  • CLion

Code::Blocks

Code::Blocks is a crossed-platform IDE for C/C++ and FORTRAN.

It is Free and Open-Source Software (FOSS), under a GPL-v3.0-only license.

Official website

Eclipse IDE

Eclipse IDE is a multi-language IDE.

It is Free and Open-Source Software (FOSS), under an Eclipse Public License.

There are special installation packages for C/C++, like Eclipse IDE for C/C++ Developers and Eclipse IDE for Embedded C/C++ Developers.

Official website

Visual Studio Code

Visual Studio Code is an editor developed by American company Microsoft.

Official website

CLion

CLion is a dedicated Integrated Development Environment (IDE) for C and C++. It is developed by Czech company JetBrains.

Unlike other JetBrains tools like IntelliJ and PyCharm, there is no community edition for this software. Nevertheless, it can be free for student and development of open-source projects, though you need to request it anually.

Official website

Learning C++

There are different webs that offer resources to learn C++.

W3 Schools

Official website

C++ Security

In 2023, The White House published a report where it warned about memory management-related security issues of C and C++, and recommended other languages like C#, Go

Bjarne Stroustrup replied to this assertion, and mentioned some C++ security improvements on this external link.

He mentions Profiles, “a framework for specifying what guarantees a piece of code requires and enable implementations to verify them”. It “is a framework that allows us to incrementally improve guarantees—e.g., to eliminate most range errors relatively soon—and to gradually introduce guarantees into large code bases through local static analysis and minimal run-time checks”.

“There are documents describing that on the committee’s website—look for WG21—and more are coming” .

External references

Leave a Reply

Your email address will not be published. Required fields are marked *