この記事は David Millington による Boost for C++Builder 10.3.1 - now available! の抄訳です。

BoostライブラリはC++BuilderとRAD Studio 10.3.1で利用可能になりました。

Boostは非常に重要なサードパーティのC++向けライブラリであり、C++Builderユーザの多くがサポートを要求しています。事前の想定よりも提供までに時間を要しましたが、GetItパッケージマネージャよりインスイトール可能となったことを発表できたことを嬉しく思います。Boost をインストールするには、GetItパッケージマネージャを開き、カテゴリ “Libraries” を探すか、または検索ボックスで Boost と入力してください。

今回リリースしたBoost ライブラリは次の3種類です。

  • Win32 Clang拡張コンパイラでは Boost 1.68 をご利用いただけます。これは今までのリリースよりも新しいバージョンです。C++17をサポートする10.3で導入された新しいコンパイラにも、アップグレードされた標準ライブラリ/ STLが付属しており、以前に投稿したブログ記事では、このコンパイラとの互換性が大幅に向上したことを紹介しました。その一例がBoostに関するものであり、このリリースでは、さらに多くのBoostライブラリをサポートしています。1.55以降では、次の機能が含まれています。
    • 1.58で導入されたBoost.Sortには、いくつかのソートアルゴリズムが含まれます。特にこれは一般的なハイブリッドな基数ソート “spreadsort” を含んでおり、O(n*log(n)) よりも高速に動作し、よいパフォーマンスを発揮します。
    • 1.59で導入されたBoost.Convertは「拡張可能で設定可能な型変換フレームワーク」です。
    • 1.61で導入されたBoost.Hanaは、型と値の両方の計算に適した有名なメタプログラミングライブラリです。これはBoost.MPLとBoost.Fusionのスーパーセットです(どちらもサポートされています)。
    • 1.61で導入されたBoost.Metaparseは、DSLからコンパイル時文字列を解析する、パーサを生成するためのライブラリです。あなた自身の言語で、それをパースする必要がある場合に、実行時にパースが行われるBoost.Spiritとは違ってコンパイル時に行われるため、非常に便利です。
    • 1.62で導入されたBoost.QVMは3D開発者やシミュレーションなどに役立つ、優れたクォータニオン(quaternion)、ベクトル演算(vector)、行列(matrix) のライブラリであり、それらの頭文字から QVM と命名されています。
    • 1.66で導入されたBoost.Mp11は別のメタプログラミングライブラリであり「型を含むデータ構造をコンパイル時に処理」できます。
    • 1.67で導入されたBoost.Hofは高階関数用のライブラリです。

これらはC++Builderで利用できるようになった本当に便利なライブラリのほんの一部です。また、その他にも、非同期ネットワークやその他のI/O用の有名なライブラリであるBoost.asioや、プロセス間通信用Boost.InterProcess、ノンロッキングデータ構造向けのBoost.lockfreeなどもサポートしています。

  • Win64 Clang拡張コンパイラでは Boost 1.55 が利用できます。これは過去にリリースしたのと同じバージョンです。

  • Win32クラシックコンパイラでは Boost 1.39 が利用できます。クラッシックコンパイラを利用するコードは基本的には Clangコンパイラへのアップグレードをお勧めしますが、クラッックコンパイラとBoostの提供は現在も継続しています。

Boost と C++Builder の今後について

Boost for C++Builder 10.3.x はリリースまでにしばらく時間がかかりましたが、これをリリースしたことを非常にうれしく思います、そして私達の将来のプランについてお伝えしたいと思います。

最も重要なこと:Boost の任意のバージョンのリリース日から大きく離れることなくC++Builder向けの提供を行うことです。10.3ではそうではありませんでしたが、開発者の皆様は 10.3.2 のリリースでも Boost が提供されることを望み、それはまた10.4以降の今後のバージョンでも同じです。

Win32用の新しいC++17コンパイラでは、これまでに提供した Boost よりも新しいバージョン(1.68)をサポートしていることにお気づきと思いますが、新しいライブラリが使用できることは開発者の皆様にとって大きなメリットです。またWin64コンパイラのC++17対応版も近日中にリリースする計画があります。このリリースによりWin64コンパイラでも新しいバージョンのBoostをサポートします。ただし現時点では Boost のバージョンが1.68になるのか、それとも1.70のようにもっと新しいバージョンとなるかは未定です。(1.70はちょうど30日前にリリースされました、しかし今回のC++Builder向けリリースではこれに対応させるためにスケジュールを遅らせることを望みませんでした。おそらく、1.70 か 1.71 が次のリリースの候補となります。)

また、今後Boostで最新情報を入手する予定です。Boostが新しいバージョンをリリースするごとに、サポートを統合していきます。理想的には、互換性の変更をBoost自体にマージすることも目指します。これは単にBoostプロジェクトにパッチを提供するということではありません。それは実際には各ライブラリのメンテナ、それらすべての127人の管理者次第なので、しばらく時間がかかります。その間、私たちは定期的に自分自身で変更をマージします。

GetItを通してBoostとその存在があなたにとって大きな利益になることを願っています。これまではリリースに時間がかかっていましたが、今後も引き続き最新のBoostバージョンをタイムリーかつ迅速にリリースすることを楽しみにしています。