Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
BeiträgeC++

C++ Builder 13 CE: Was ist neu und warum ist das wichtig?

Die C++Builder Community Edition wurde auf Version 13 aktualisiert und bietet berechtigten Nutzern kostenlosen Zugriff auf die moderne Win64-Toolchain. Sie richtet sich an Studenten, Hobbyentwickler, Freiberufler und kleine Teams, die die Lizenzbedingungen der Community Edition erfüllen. Die vollständigen Teilnahmebedingungen und Nutzungsbedingungen finden Sie in der Lizenzvereinbarung.

Clang 20 als Grundlage

RAD Studio CE aktualisiert den Win64-Modern-Compiler (bcc64x) von Clang 15 auf Clang 20. Dadurch wird eine erhebliche Lücke zum Upstream-LLVM geschlossen. Die VCL/FMX-Integration von Embarcadero sowie plattformspezifische Patches basieren nun auf einem Compiler, der viel näher an dem liegt, womit das breitere C++-Ökosystem testet – was wichtig ist, wenn man versucht, eine Bibliothek eines Drittanbieters zu erstellen, die einen aktuellen Standard-Clang voraussetzt. Zwischen den Clang-Versionen 15 und 20 liegen fünf Upstream-Releases, und die kumulativen Auswirkungen auf die Diagnostik sind spürbar: Fehlermeldungen sind präziser, die Ablaufverfolgung der Template-Instanziierung ist leichter lesbar, und standardmäßig wird eine größere Bandbreite an Warnungen ausgegeben. Insgesamt macht die neue Windows 64 Bit-Toolchain die Open-Source-Entwicklung einfacher, vorhersehbarer und branchenweit einheitlicher.

C++23-Unterstützung

Neue Win64-Modern-Projekte in C++Builder 13 verwenden standardmäßig C++23. In den Projekteinstellungen kann man zu C++17 oder C++20 wechseln. Clang 20 bietet eine umfassende Unterstützung für C++23 – hier folgen die Funktionen mit den größten praktischen Auswirkungen:

Ableitung von this (P0847) ermöglicht das Schreiben einer einzigen Memberfunktion, die sowohl mit const und nicht-const Zugriffen sowie für lvalue und rvalue Qualifizierungen funktioniert:

CRTP-Hierarchien, für die bisher static_cast<Derived&>(*this)erforderlich war, können nun dasselbe direkt ausdrücken. Auch rekursive Lambdas lassen sich nun nahtlos verwenden.

[assume(expr)] bietet dem Optimierer eine plattformunabhängige Möglichkeit, Vorbedingungen zu definieren:

Im Gegensatz zu __builtin_assume, handelt es sich hierbei um den Standard-C++23 und ist auf allen konformen Compilern portabel.

Lebensdauerverlängerung in for-Schleifen (P2718) behebt ein seit langem bestehendes Problem in Form eines undefinierten Verhaltens. Vor C++23 führte dieser Code zu undefiniertem Verhalten (UB), wenn getWidget() ein temporäres Objekt zurückgab:

Das temporäre Objekt wurde zerstört, bevor der Schleifenkörper ausgeführt wurde. C++23 verlängert die Lebensdauer von temporären Objekten, die im Bereichsinitialisierer erstellt wurden, auf die gesamte Schleife – Code, der zuvor stillschweigend fehlerhaft war, ist nun definiert.

static operator() (P1169) und static operator[] (P2589) – zustandslose Funktoren und Indexoperatoren benötigen keinen impliziten this-Parameter mehr, wodurch der Compiler das überflüssige Zeigerargument vollständig weglassen kann.

if consteval (P1938) provides a clean way to branch between compile-time and runtime paths without the if constexpr(std::is_constant_evaluated()) workaround.
if consteval (P1938) bietet eine elegante Möglichkeit, zwischen Kompilierzeit- und Laufzeitpfaden zu wechseln, ohne auf den Workaround if constexpr(std::is_constant_evaluated()) zurückgreifen zu müssen.

LLDB 20: Debugger-Update

RAD Studio 13 nutzt nun LLDB 20 als Debugger-Backend. In den Release Notes der LLDB-20-Upstream-Version wird die parallele Analyse von Shared Libraries beschrieben – was bei großen Projekten zu einer erheblichen Verkürzung der Verbindungs- und Startzeiten führt – sowie die korrigierte Platzierung von Haltepunkten an Stellen mit Inline-Aufrufen, an denen frühere Versionen den Haltepunkt stillschweigend auf den nächsten tatsächlichen Befehl verschoben haben.

CMake und Drittanbieter-Bibliotheken

Die CMake-Unterstützung über GetIt wurde in C++Builder 12.2 eingeführt und wird in Version 13 mit einigen Verbesserungen fortgeführt:

  1. ein angepasster CMake-Build mit einer Toolchain-Datei für bcc64x;
  2. Ninja als Build-Ausführer;
  3. API im Funktionsstil — set_embt_target(<target> ...) – die mehrere CMake-Ziele in einem einzigen Projekt unterstützt.

Der praktische Nutzen des Upgrades auf Clang 20 macht sich hier am deutlichsten bemerkbar: Viele Bibliotheken von Drittanbietern, für deren Kompilierung unter C++Builder bisher Patches erforderlich waren, funktionieren nun ohne Änderungen. Bestätigt funktionierend:

  • OpenCV;
  • Google Test;
  • VTK;

und viele andere.

Technologie-Updates

Die neue Community Edition verfügt über dieselbe VCL und FMX, die so geschätzt wird, sowie über alle neuen Funktionen von RAD Studio 13. Weitere Informationen befinden sich in den RAD Studio-Versionshinweisen.

FireMonkey-Erweiterungen

FireMonkey ist eines von zwei Anwendungs-Frameworks, die C++Builder-Entwicklern zur Verfügung stehen. Zu den seit C++Builder 12.1 eingeführten Neuerungen gehören:

  • verbessertes Animations-Timing und höhere visuelle Stabilität durch den neuen „Display Link“-Dienst;
  • umfassendere Steuerung von Touch-Gesten, Scrollverhalten und Bounce-Effekten;
  • GPU-gestützte Bitmap-Übertragungen für eine bessere Grafikleistung;
  • neue Komponenten TApplicationEvents und TMaskEdit;
  • zusätzliche Ausrichtungsmodi, die die präzise Zentrierung erleichtern;
  • verbesserte integrierte Rechtschreibprüfung;
  • eine überarbeitete Integration von Skia4Delphi;
  • zahlreiche Leistungsoptimierungen und Qualitätsverbesserungen.

VCL-Erweiterungen für Windows

C++Builder 13 bietet weitere Neuerungen für die VCL-Entwicklung nativer Windows-Anwendungen, darunter:

  • Unterstützung für das Scrollen innerhalb TActionMainMenuBar;
  • flexiblere Gestaltung der Titelleisten benutzerdefinierter Formulare;
  • eine neue WebView2-Laufzeitintegration für TEdgeBrowser;
  • Verbesserungen hinsichtlich Benutzerfreundlichkeit und Optik bei TControlList, TFormTabsBar und TToggleSwitch.

64 Bit-IDE

Die C++Builder-IDE ist nun eine native 64 Bit-Anwendung, die Zugriff auf mehr Arbeitsspeicher bietet und für mehr Stabilität bei der Arbeit mit großen Projekten und komplexen Entwicklungsumgebungen sorgt.

Bekannte Probleme

Uns ist ein Problem bekannt, das die Installation des französischen Sprachpakets in der C++Builder 13 Community Edition beeinträchtigt. Bis dieses Problem behoben ist, wählen Sie bitte keinesfalls die französische Sprachunterstützung aus und installieren Sie diese auch nicht, da dies zu einem Fehlschlagen der Installation führen kann. Wir arbeiten derzeit an einer Lösung.

Wer kann die C++Builder Community Edition benutzen?

Die C++ Builder Community Edition ist für folgende Zielgruppen konzipiert:

  • Studierende, die C++ und die Entwicklung nativer Anwendungen lernen;
  • Hobbyentwickler, die Anwendungen für den privaten oder nichtkommerziellen Gebrauch erstellen;
  • Freiberufler und unabhängige Entwickler, die mit ihren Anwendungen weniger als 5.000 US-Dollar pro Jahr verdienen;
  • Start-ups und Organisationen mit einem Jahresumsatz von weniger als 5.000 US-Dollar und Entwicklungsteams mit höchstens fünf Mitarbeitern.

Die C++ Builder Community Edition ist im Rahmen einer einjährigen Lizenz kostenlos erhältlich und erlaubt eine eingeschränkte kommerzielle Nutzung. Entwickler, die sich hinsichtlich ihrer Berechtigung unsicher sind, sollten die FAQ zur Community Edition-Lizenz konsultieren.

Die Community Edition ist nicht als langfristige Testversion gedacht und sollte nicht von Organisationen genutzt werden, die bereits über reguläre kommerzielle C++Builder-Lizenzen verfügen.

Wenn ein Projekt, ein Team oder ein Unternehmen die Grenzen der Community Edition überschreitet, bieten C++Builder Professional, Enterprise und Architect uneingeschränkte kommerzielle Lizenzen und einen umfassenderen Umfang an Entwicklungsfunktionen.

Was kommt als nächstes

C++Builder 13 CE stellt den Nutzern der Community Edition die „Florence“-Toolchain zur Verfügung und ermöglicht berechtigten Entwicklern damit den Zugriff auf dieselbe moderne C++-Grundlage, die bereits in der kommerziellen Version eingeführt wurde.

Auch in Zukunft wird RAD Studio 13.2 die Produktivität bei der Arbeit mit C++ in den kostenpflichtigen Editionen weiter steigern – mit Verbesserungen, die den Arbeitsalltag erleichtern und sich im Laufe eines ganzen Arbeitstages positiv auswirken. Weitere Informationen folgen, sobald der Veröffentlichungstermin näher rückt.

Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES