Ecosystem

Resources for the vast ecosystem behind C++

C++ Compilers and Toolchains

Popular C++ compilers, compiler front ends, and toolchains across desktop, embedded and WebAssembly targets

GCC

Mature open-source compiler collection with broad architecture and operating-system support and the libstdc++ C++ standard library

Clang

The Clang project provides a language front-end and tooling infrastructure for languages in the C language family (C, C++, Objective C/C++, OpenCL, and CUDA) for the LLVM project

MSVC

Microsoft's proprietary C++ toolchain for Windows, integrated with Visual Studio and also available as standalone Build Tools

MinGW-w64

Mingw-w64 is a collection of header files, import libraries, libraries and tools that, when combined with a compiler toolchain, such as GCC or LLVM, provides a complete development environment for building native Windows applications and libraries

Emscripten

Emscripten is a complete compiler toolchain to WebAssembly, using LLVM, with a special focus on speed, size, and the Web platform

clang-cl

clang-cl is an alternative command-line interface to Clang, designed for compatibility with the Visual C++ compiler, cl.exe

EDG C++ Front End

Commercial, configurable C and C++ compiler front end intended for integration into compilers, source-analysis tools, and other language-processing products

IAR C/C++ Compiler

Commercial optimizing C/C++ compiler family for embedded development, integrated with IAR Embedded Workbench and Build Tools

NVC++ (NVIDIA HPC SDK)

NVIDIA HPC C++ compiler supporting multicore CPUs and NVIDIA GPUs through standard C++ parallelism, OpenACC, and OpenMP

Standard Libraries

Implementations of the C++ standard library and notable alternatives

Package Managers

Tools for managing C++ libraries and dependencies

Build systems and generators

Tools for building C++ projects and managing build configurations

ABIs

Documentation of the C++ Application Binary Interface (ABI) and name mangling schemes used by various compilers and platforms

Itanium C++ ABI

The C++ ABI used by GCC, Clang, and other toolchains on many non-Windows platforms

ARM 32-bit C++ ABI

C++ ABI requirements for the 32-bit ARM architecture, derived from the Itanium C++ ABI

ARM AAPCS32

Procedure call standard, data layout, and calling conventions for the 32-bit ARM architecture

ARM AAPCS64

Procedure call standard, data layout, and calling conventions for the 64-bit ARM architecture

System V x86-64 psABI

Processor ABI for x86-64 System V platforms, including calling conventions, data layout, ELF, and C++ conventions

Apple ARM64 ABI

Apple's ARM64 ABI, including Apple-specific differences from the generic ARM and C++ ABIs

Apple x86-64 ABI

Calling conventions and ABI requirements for 64-bit Intel code on Apple platforms

Apple ARMv7 ABI

ABI and calling conventions for ARMv7 code on legacy Apple platforms

PowerPC64 ELFv1 ABI

Original 64-bit PowerPC ELF ABI used primarily by big-endian PowerPC64 systems

PowerPC64 ELFv2 ABI

ELFv2 ABI for 64-bit Power Architecture systems, including calling and linkage conventions

MIPS System V ABI

System V processor ABI for MIPS, including data layout, calling conventions, ELF, and dynamic linking

s390x ELF ABI

ELF ABI and calling conventions for IBM Z and LinuxONE 64-bit systems