2.5. Characteristics and Implementation of C29x C++

The c29clang compiler supports C++ as defined in the ANSI/ISO/IEC 14882:2017 standard (C++17), including these features:

  • Complete C++ standard library support, with exceptions noted below.

  • C++ Templates

  • Run-time type information (RTTI), which can be enabled with the -frtti compiler option.

The following features are not implemented or fully supported:

  • Exception handling and the -fexceptions compiler option

  • Features related to threads and concurrency, such as:

    • std::thread

    • std::unique_lock

    • std::shared_mutex

    • std::execution

    • C++ atomic operations

    • thread-local storage

  • Some features related to memory management, such as:

    • std::pmr::memory_resource

    • std::align_val_t

  • The Filesystem library

  • The C++17 Mathematical Special Functions library

Please see C++ Language Variants (-std) for supported C++ language variants as well as the options that control the language standard used.

2.5.1. C++ Exception Handling

The c29clang compiler does not currently support the C++ exception handling features defined by the ANSI/ISO 14882 C++ Standard. The -fexceptions command-line option is not supported.