サイトアイコン Embarcadero RAD Studio, Delphi, & C++Builder Blogs

C++Builder 10.4.2のオープンソースC++ライブラリ

C++には幅広いエコシステムがあります。C++Builderの重要な目標の1つは、他のC++開発者が作成したライブラリを利用できるようにすることです。C++BuilderではリリースごとにRTLとSTLに注力し、高品質で優れた互換性を維持できるように取り組んでいます。 これは、プロジェクトをアップグレード(移行)する場合や、オンラインで提供されているライブラリのC++ソースコードを取り込みたい場合には、まさに必須な要件です。 

その代表的な例として、パッケージマネージャであるGetItで利用可能なオープンソースの(多くの場合、複雑な)C++ライブラリの数が増えていることです。

10.4.2には5つの新しいライブラリが追加され、合計15個のオープンソースライブラリが利用できるようになり、C++Builderのリリースごとに着実に増えています。

このブログでは、今回GetItのラインナップとして新しく追加された素晴らしいC++ライブラリについて紹介いたします。

Microsoft C++ Core Guidelines Support Library

C++標準化委員会 (C++ Standards Committee)は、最新のC ++を効果的に使用する方法に関する推奨事項を定めています。

これはガイドラインのコアとなる部分で、Microsoftによって作成されたこのライブラリには、このガイドラインに沿ってC++のコードを書くのに役立つ型とメソッドが含まれています。このライブラリには,std::span をベースに境界チェックを行った span やスマートポインタに NULL 値を持たせないようにする not_null などが含まれています。

さらに事前条件と事後条件のアサーション(expectsとensures)、スタック配列とヒープ配列など、とても便利な機能を挙げてみました。便利なメソッドやタイプについては、GSLのReadmeで詳しく説明されていますが、これらをC++Builderで使用できるようになりました。

Google Test

C++Builder向けのテストフレームワークについてよく質問を受けます。その際はC++に対応しているDUnitをお勧めしています。ただし他にも、BoostにはBoost :: testがあり、オブジェクトモック用のGoogle Mocksフレームワークとして提供されている非常に有名なGoogle Testがあります。Google Testは便利なライブラリである反面、複雑なので、GetItのラインナップに掲載されていることで、10.4.2リリースの品質を裏付ける証明にもなります。

xtl

xtlには、金融分野でよく使用されるxtensorフレームワーク(エンバカデロが現在取り組んでいるフレームワークの一つ)で使用される多くの便利なコンテナやアルゴリズムが提供されています。もし高性能なC++を探しているのであれば、一度試してみる価値のある素晴らしいライブラリです。

ACE/TAO: クロスプラットホーム CORBA メッセージングライブラリ

ACE/TAOは、最大かつ最も複雑なライブラリの一つであり、多くのお客様から質問を受けるライブラリでもあります。この1年間、エンバカデロでは、このライブラリに特化した膨大な作業を行ってきました。このライブラリが利用できるということは、10.4.2が提供する互換性を明確に示しています。また、多くのC++Builderユーザーが、数バージョン前のプロジェクトをアップグレードするために、ACE/TAOを使用したいと考えている方も多いと思います。そういう意味では、この価値あるライブラリをGetItのラインナップの一つとして掲載できたことは非常に喜ばしいことです。

{fmt} C++のための安全で非常に高速なフォーマット

C言語標準のI/OおよびC++のStreamは、使いにくく、安全でないことが多いことで有名です。{fmt}は、洗練された構文、コンパイル時のエラー、強力なテスト、優れたパフォーマンスを備え非常に人気のある代替手段です.以下はReadmeから抜粋したコードを紹介します。

[crayon-6768ef47cb1f5683515495/] [crayon-6768ef47cb200384796227/]

このような間違った型を渡してしまうコード例は、同じような経験した人もいるかもしれません。

[crayon-6768ef47cb202068746479/]

これでは、コンパイル時にエラーが発生します。

興味深いコードサンプルやベンチマークが掲載されているので、こちらのReadmeをご覧ください。このライブラリは若干の最終調整を行っていますが、近日中にC++Builderで使用できるようになります。

これらの重要かつ有用なオープンソース・ライブラリは、皆様のプロジェクトに多大な価値を与えます。個人的には、要望の多かったACE/TAO、ガイドラインサポートライブラリ、{fmt}には特に期待しています。C++Builderでは、オープンソースのC ++ライブラリをコードに追加できることを忘れないでください。必要なコードを確実に使用できるように互換性と品質に取り組んできました。

もちろん、それだけではありません。GetItには、Boost(従来のBorlandコンパイラ、Win32 clang、Win64 clang)、EasyBMP、Eigen線形代数および数学フレームワーク、ExpatおよびTinyXML XMLパーサー、libsimdpp(高速数学)、NemaTode(NMEAおよびGPS)、SMHasher(ハッシュ関数)、SDL2(ゲームの作成に最適!)も含まれています

これらのライブラリはすべてオープンソースであり、これらのライブラリを含むリポジトリはAssemblaで見つけることができます。

まとめ

C++Builderでは、アップグレード時にコードが確実に動作し、外部のC++コードを簡単に使用できるようにするため、互換性と堅牢性の向上に取り組んできました。これはソフトウェアにとって大きなメリットです。10.4.2では、今回のリリースで改善された点を示す、非常に便利なライブラリと技術的に複雑なライブラリの両方が追加されており、その成果がよく現れています。これらのライブラリが皆さんのプロジェクトに役立つことを願っています。また、これらのライブラリとは別に、10.4.2にアップグレードすることで、ソフトウェアの品質が向上するだけでなく、リンカメモリやコード補完など、今回のリリースで改善された点を利用することができます。

今すぐ10.4.2を使い始めよう

すでに、10.4.2のトライアル版が利用可能になっており、今後製品を購入いただくと、10.4.2をダウンロードいただけるようになります。また、すでに製品をお持ちの方は、有効なアップデートサブスクリプションがあれば、既存のライセンスを使用してRAD Studio 10.4.2をご利用いただけます。10.4.2のダウンロードは、新しいカスタマーポータルサイト(my.embarcadero.com)から行えます。

詳細については、以下の情報をご確認ください。

エンバカデロでは、10.4.2において行った作業について大きな成果を上げることができたと考えており、皆さんがこの新しいリリースをご活用いただけるものと期待しています。

モバイルバージョンを終了