C++ developers often ask about ISO C++ language support in releases of Embarcadero C++Builder. This post includes links and information about the C++ compilers, Dinkumware Standard C++ libraries and Boost libraries that are included in C++Builder 10.4 Sydney Release 1.
The latest release of C++Builder is 10.4 Sydney Release 1 (v10.4.1). Version 10.4.1 includes C++ tool chain and RTL improvements in the Win64 debugger, linker, exception handling and general quality. The DocWiki contains a list of feature enhancements and developer reported issues fixed in the IDE, VCL, FMX, and RTL. RAD Studio 10.4.1 also includes all fixes from 10.4 Patch 1, Patch 2, and Patch 3.
C++Builder Clang-Enhanced Compilers
C++Builder 10.4 Sydney Clang-enhanced compiler Clang and LLVN version information is as follows:
Compiler | Platform | Clang Version | LLVM Version |
BCC32C | 32-bit Windows | 5.0 | 5.0 |
BCC32X | 32-bit Windows | 5.0 | 5.0 |
BCC64 | 64-bit Windows | 5.0 | 5.0 |
BCCIOSARM | 32-bit iOS | 3.3 | 3.3 |
BCCIOSARM64 | 64-bit iOS | 3.3 | 3.5 |
BCCAARM | Android | 3.3 | 3.3 |
You can find Clang/LLVM ISO C++ Status information at https://clang.llvm.org/cxx_status.html
- Clang 3.3 and later implement all of the ISO C++ 2011 standard.
- Clang 3.4 and later implement all of the ISO C++ 2014 standard.
- Clang 5 and later implement all the features of the ISO C++ 2017 standard.
If you need your C++ application to test for Clang version use at compile time use the following code:
#if defined(__clang__) #if (__clang_major__ == 5 && __clang_minor__ == 0) #include <clang5.0\xmmintrin.h> #elif (__clang_major__ == 3 && __clang_minor__ == 3) #include <clang3.3\xmmintrin.h> #else #error "Unable to determine correct clang header version" #endif #else #error "Only supported for clang compilers" #endif
David Millington, Product Manager for C++Builder keeps the Embarcadero C++Builder information updated on the C++ Reference compiler support page. On this page you can look at the different ISO C++ language releases to see what many compilers support in their compiler releases.
Dinkumware Standard Library
The Dinkumware Standard C++ Library is the implementation of the C++ Standard Library that C++Builder uses for applications on the 32-bit Windows, 64-bit Windows and macOS target platforms.
The libraries include containers such as vectors, lists, sets, maps, and bitsets. Dinkumware also includes algorithms for common operations, such as sorting a container or searching inside a container.
Dinkumware version 8.03a is available specifically for C++ application development on target platforms that support the Clang enhanced compilers. Dinkumware version 5.01 is provided to support the classic C++ compiler.
Target Platform | Compiler | C++ Standard | Dinkumware Version |
---|---|---|---|
32-bit Windows | BCC32 | C++98/03 | 5.01 |
BCC32C | C++17 | 8.03a | |
BCC32X | C++17 | 8.03a | |
64-bit Windows | BCC64 | C++17 | 8.03a |
Boost Libraries
C++Builder supports different versions of the Boost libraries depending on the C++ compiler that you use to compile your application.
To install the Boost libraries you need, use the IDE’s Tools | GetIt Package Manager menu and select one or more of the Boost packages.
See Also
Dinkumware Standard C++ Library
C++Builder Product Page – Native Apps that Perform. Build Windows C++ Apps 10x Faster with Less Code
C++Builder Product Editions – C++Builder is available in four editions – Professional, Enterprise, Architect and Community (free). C++Builder is also available as part of the RAD Studio development suite.
Desktop First UX Summit – Sept 16th & 17th, 2020
The FREE Desktop First UX Summit is your chance to learn from the best UI and UX industry experts and practitioners and take your desktop applications to the next level.
Move beyond the Mobile-First design of just stretching a small UI to fill a desktop screen. Learn how to take the most advantage of the most powerful platform and make your users more productive.
Sponsored by Embarcadero’s RAD Studio 10.4 Sydney.
Here are the first two of many talks being given at the Desktop First UX Summit: