C++Builder Community Editionがバージョン13へアップデートされ、利用条件を満たすユーザーは、新しいモダンWin64ツールチェインを無償で利用できるようになりました。C++Builder Community Editionは、Community Editionのライセンス条件を満たす学生、趣味で開発を行う方、フリーランス、および小規模な開発チームを対象としています。利用資格や使用条件の詳細については、使用許諾契約をご確認ください。
本ブログでは、C++Builder 13 Community Editionで利用できるようになった新機能と、それらがC++開発にもたらすメリットについて紹介します。
注:Community Editionには、IDEに搭載されたAIコーディングアシスタント「Kai」は含まれておらず、サポートもされません。Kaiは、有償版向けのプレミアムアドオンとして別途販売されています。Kaiの機能を試用してみたい方は、RAD Studioトライアル版をご利用ください。
Table of Contents
Clang 20を基盤とする新しいWin64 Modernツールチェイン
RAD Studio 13では、Win64 Modernコンパイラ(bcc64x)がClang 15からClang 20へアップデートされました。これにより、LLVM本家との間にあった大きなバージョン差が縮まりました。EmbarcaderoによるVCL/FireMonkey統合とプラットフォーム固有のパッチは、C++エコシステム全体で広くテストされているバージョンに近いコンパイラを基盤として実装されています。この点は、新しい標準Clangを前提とするサードパーティ製ライブラリをビルドするときに特に重要です。
Clang 15から20までの5つのリリースで積み重ねられた改善により、診断機能も大きく向上しています。エラーメッセージはより正確になり、テンプレートのインスタンス化トレースが読みやすくなったほか、デフォルトで検出される警告の範囲も広がりました。新しいWindows 64bitツールチェインによって、オープンソース開発が容易になり、動作の予測可能性や他のC++開発環境との一貫性も向上します。
C++23のサポート
C++Builder 13で新しく作成したWin64 Modernプロジェクトでは、C++23がデフォルトで使用されます。プロジェクト設定を変更することで、C++17またはC++20を使用することもできます。Clang 20はC++23の言語機能を幅広くサポートしています。実用面で特に影響の大きい機能を以下に紹介します。
Deducing this(P0847)を使用すると、const/非constアクセスと、lvalue/rvalue修飾の両方に対応するメンバー関数を1つにまとめて記述できます。
|
1 2 3 4 |
struct Buffer { template <typename Self> auto& data(this Self&& self) { return self.m_data; } }; |
これまでstatic_cast<Derived&>(*this)が必要だったCRTP階層でも、同じ処理を直接表現できるようになります。再帰ラムダも、より自然に記述できます。
[[assume(expr)]]を使用すると、オプティマイザに対して前提条件を移植性のある方法で指定できます。
|
1 2 3 4 5 |
void process(int* p, int n) { [[assume(n > 0)]]; [[assume(p != nullptr)]]; // ... } |
__builtin_assumeとは異なり、これは標準C++23の機能であり、規格に準拠するコンパイラ間で移植できます。
範囲forにおける一時オブジェクトの生存期間延長(P2718)は、長年にわたり未定義動作を招いていた問題を解決します。C++23より前では、getWidget()が一時オブジェクトを返す場合、次のコードは未定義動作になりました。
|
1 |
for (auto& item : getWidget().items()) { ... } |
従来はループ本体が実行される前に一時オブジェクトが破棄されていました。C++23では、範囲初期化子で作成された一時オブジェクトの生存期間がループ全体まで延長されるため、以前は正しく動作しなかったコードの動作が定義されます。
static operator()(P1169)とstatic operator[](P2589)により、状態を持たない関数オブジェクトや添字演算子で暗黙のthisパラメータが不要になり、コンパイラは不要なポインタ引数を省略できます。
if consteval(P1938)を使用すると、if constexpr(std::is_constant_evaluated())のような回避策を使わずに、コンパイル時と実行時の処理を明確に分岐できます。
LLDB 20によるデバッグ機能の強化
RAD Studio 13では、デバッガのバックエンドがLLDB 20へアップデートされました。LLDB 20では共有ライブラリを並列に解析できるため、大規模プロジェクトにおけるデバッガの起動時間やプロセスへのアタッチ時間が大幅に短縮されます。また、インライン化された呼び出し位置にブレークポイントを設定したとき、従来のバージョンではブレークポイントが次の実際の命令へ移動することがありましたが、この問題も修正されています。
CMakeとサードパーティ製ライブラリ
GetItを通じたCMakeのサポートはC++Builder 12.2で導入され、C++Builder 13でもいくつかの改善を加えて引き続き利用できます。開発環境は次の要素で構成されます。
bcc64x用ツールチェインファイルを備えたパッチ適用済みのCMakeビルド- ビルドランナーとしてのNinja
- 1つのプロジェクトで複数のCMakeターゲットをサポートする関数形式のAPI(
set_embt_target(<target> ...))
Clang 20へのアップデートによる実用上の効果が、最も直接的に表れるのがこの領域です。これまでC++Builderでコンパイルするためにパッチが必要だった多くのサードパーティ製ライブラリが、変更せずに動作するようになりました。以下のライブラリで動作が確認されています。
- OpenCV
- Google Test
- VTK
このほかにも、多くのライブラリを利用できます。
テクノロジーのアップデート
新しいCommunity Editionでも、使い慣れたVCLとFireMonkeyを引き続き利用でき、RAD Studio 13で追加された新機能も含まれています。詳しくは、RAD Studio 13の新機能をご参照ください。
FireMonkeyの機能強化
FireMonkeyは、C++Builder開発者が利用できる2つのアプリケーションフレームワークのうちの1つです。C++Builder 12.1以降、次のような機能強化が加えられています。
- 新しいDisplay Linkサービスによる、アニメーションのタイミングと表示の安定性の向上
- タッチジェスチャ、スクロール動作、およびバウンス効果に関する制御の拡張
- GPUを利用したビットマップ転送によるグラフィックス性能の向上
- 新しい
TApplicationEventsコンポーネントとTMaskEditコンポーネント - コントロールを正確に中央配置しやすくする追加の整列モード
- 組み込みスペルチェック機能の強化
- Skia4Delphi統合の更新
- 数多くのパフォーマンス最適化と品質向上
Windows向けVCLの機能強化
C++Builder 13では、Windowsネイティブアプリケーション向けのVCL開発機能にも、次のようなアップデートが加えられています。
TActionMainMenuBar内のスクロール対応- フォームのカスタムタイトルバーに対する、より柔軟なスタイル設定
TEdgeBrowserにおける新しいWebView2ランタイム統合TControlList、TFormTabsBar、TToggleSwitchの使いやすさと表示の改善
ネイティブ64bit IDE
C++Builder IDEがネイティブ64bitアプリケーションになりました。より多くのメモリを利用できるようになり、大規模なプロジェクトや複雑な開発環境で作業する際の安定性も向上しています。
既知の問題
C++Builder 13 Community Editionでは、フランス語言語パックのインストールに関する問題が確認されています。この問題が解決されるまでは、インストールに失敗する可能性があるため、フランス語サポートを選択またはインストールしないでください。現在、修正に向けて対応中です。
C++Builder Community Editionを利用できる方
C++Builder Community Editionは、以下の方を対象としています。
- 学生:プロフェッショナルレベルの開発ツールを使用して、C++プログラミングやネイティブアプリケーション開発を学びたい方
- 趣味で開発を行う方:個人用途のアプリケーションを開発する方
- フリーランスおよび個人開発者:開発したアプリケーションによる年間収入が5,000 USドル未満の方
- スタートアップ企業および組織:年間売上が5,000 USドル未満で、開発者が5名以下のチーム
C++Builder Community Editionは無償で提供され、有効期間が1年間のライセンスと、一定の条件下で商用利用できるライセンスが含まれています。Community Editionを使用してアプリケーションを開発し、利用条件の範囲内で販売することもできます。詳しい条件については、使用許諾契約をご確認ください。
Community Editionは、製品の試用や評価を目的としたエディションではありません。Community Editionの利用条件を満たしているか分からない場合は、すべての機能を30日間試用できるRAD Studioトライアル版をご利用いただくか、Community Edition License FAQをご参照ください。また、通常のC++Builder商用ライセンスをすでに所有している組織では、Community Editionを使用できません。
Community Editionの利用条件を満たさなくなった場合は、商用利用の制限がなく、永続ライセンスとして提供される有償版へアップグレードしてください。有償版は、Delphi、C++Builder、RAD StudioのProfessional、Enterprise、Architect Editionから選択できます。
Community Editionは、個人または利用条件を満たすスタートアップ企業などが利用できる製品です。Community Editionを利用している企業の年間売上が5,000 USドル以上に達した場合、または開発チームが5名を超えた場合は、Professional以上の有償エディションを購入する必要があります。個人で利用している場合は、作成したアプリケーションやコンポーネントによる年間収入が5,000 USドル以上に達した時点で、有償エディションへの移行が必要です。Community Editionの利用条件を満たさない企業ユーザーがCommunity Editionを使用すると、試用目的であってもライセンス違反となりますのでご注意ください。企業ユーザーは有償エディションを購入するか、製品の試用・評価には無料のRAD Studioトライアル版をご利用ください。
C++Builder 13 Community Editionのダウンロード
C++Builder 初めて使用する方、ネイティブアプリケーション開発を学ぶ方、C++Builder 12.1 Community Editionからアップデートする方のいずれにとっても、C++Builder 13 Community Editionは、Windows向けの高速なネイティブアプリケーションを構築するための、モダンで生産性の高い開発環境を提供します。
C++Builder 13 Community Editionを今すぐダウンロードして、アプリケーション開発を始めましょう :今すぐダウンロード
関連情報
今後の展開
C++Builder 13 CEでは、バージョン13「Florence」のツールチェインをCommunity Editionユーザーも利用できるようになりました。利用条件を満たす開発者は、有償版で導入されたものと同じモダンC++の基盤を活用できます。
今後、RAD Studio 13.2では有償エディションにおけるC++の生産性をさらに高め、日々の開発作業を快適にするさまざまな改善が予定されています。リリースが近づきましたら、あらためて詳しい情報をお知らせします。
関連情報
Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Free Delphi Community Edition Free C++Builder Community Edition





