Docs Menu
Docs Home
/ / /
C++ ドライバー

新機能

項目一覧

  • Overview
  • 重大な変更のタイプ
  • 3.11の新機能
  • 3.10の新機能
  • 3.9の新機能

次の新機能をご覧ください。

  • バージョン3.11

  • バージョン3.10

  • バージョン3.9

C++ドライバーの新しいバージョンでは、次のタイプの重大な変更が導入される可能性があります。

  • APIの変更は、 C++ドライバー ライブラリのAPIを考慮します。 これらの変更にはAPIメジャー バージョンのアップグレードが伴います。 これらの変更に対処するには、プロジェクト内のC++ソースコードを編集する必要がある場合があります。

    • 関数 v1::func()の宣言を削除します。 (ABI 互換性のために定義は引き続き提供されます)。

    • インライン関数v_noabi::func()を削除します。

    • v_noabi::func()を削除します。

    • bsoncxx::fooの再利用をv1::fooからv2::fooに変更します。 古いインターフェースを引き続き使用するには、 bsoncxx::foobsoncxx::v1::fooとして修飾します。

  • ABIの変更は、 C++ドライバー ライブラリの ABI に関する変更です。 これらの変更には ABI バージョンのアップグレードが伴いますが、 APIメジャー バージョンのアップグレードが伴う場合もあります。 これらの変更に対処するには、プロジェクトを再ビルドするか、 C++ソースコードを編集する必要がある場合があります。

    ABI 安定性は、 v_noabi名前空間で宣言されたエンティティに対応するシンボルではサポートされていません。 このようなシンボルの重大な変更には、必ずしも ABI バージョンのアップグレードが必要ではありません。

    • エクスポートされたシンボルv_noabi::func()を削除します。

    • エクスポートされたシンボルv1::func()を削除します。

    • v1::typeのエクスポートされたシンボルを削除します。

  • ビルド システムの変更は、ビルド システムまたはC++ドライバー ライブラリのパッケージ化に関するものです。 これらの変更は必ずしもAPIメジャー バージョン アップグレードや ABI バージョン アップグレードを伴うものではありません。 これらの変更に対処するには、ビルド システム構成を変更するか、プロジェクトのパッケージまたは依存関係管理設定を更新する必要がある場合があります。 また、 C++ソースコードを変更または再構築する必要がある場合もあります。

    • ENABLE_FOO構成変数を削除します。

    • ENABLE_BAR構成変数のデフォルト値をOFFからONに変更します。

    • プラットフォーム A、コンパイラー B、またはアーキテクチャCのサポートを削除します。

警告

重大な変更

v 3.11ドライバーは、次の重大な変更を導入します。

  • MongoDB Server v 3.6のサポートを廃止します。

  • MongoDB Cドライバー v 1.28.0以降が必要です。

  • bsoncx ABI 内の次のプライベート ノード関数のエクスポートを削除します。

    • bsoncxx::v_noabi::types::bson_value::value::value(const uint8_t*, uint32_t, uint32_t, uint32_t)

    • bsoncxx::v_noabi::types::bson_value::view::_init(void*)

    • bsoncxx::v_noabi::types::bson_value::view::view(const uint8_t*, uint32_t, uint32_t, uint32_t)

    • bsoncxx::v_noabi::types::bson_value::view::view(void*)

  • mongocx ABI 内の次のプライベート ノード関数のエクスポートを削除します。

    • mongocxx::v_noabi::options::change_stream::as_bson()

    • mongocxx::v_noabi::options::aggregate::append(bsoncxx::v_noabi::builder::basic::document&)

    • mongocxx::v_noabi::options::index::storage_options()

  • MSVC でコンパイルされた場合は、エクスポートされたすべての関数シンボルを__cdeclで宣言します。 プロジェクトを構築するときに、代替のデフォルトの呼び出し規則を使用する場合、これは ABI の重大重大な変更です。

v 3.11ドライバーのリリースには、次の新機能が含まれています。

  • MongoDB Server v 8.0のサポートを追加します。

  • Queryable Encryption範囲クエリのサポートを追加します。 この機能を使用するには、アプリをMongoDB Server 8.0以降に接続する必要があります。 Queryable Encryptionの詳細については、 MongoDB Serverマニュアルの「 Queryable Encryption 」を参照してください。

  • mongocxx::v_noabi::bulk_writeempty()メンバー関数を追加します。

このリリースの詳細については、Github で v3.11 リリースノート を参照してください。

警告

システムの重大な変更の構築

v 3.10ドライバーは、ビルド システムに次の重大な変更を導入します。

  • find_package(libbsoncxx)find_package(libmongocxx)の呼び出しのサポートを廃止します。 代わりにfind_package(bsoncxx)find_package(mongocxx)を使用してください。

  • レガシーCSpecパッケージ構成ファイルによって提供されるLIBBSONCXX_*およびLIBMONGOCXX_* CSpec 変数のサポートを廃止します。 代わりに、 mongo::bsoncxx_*mongo::mongocxx_* CSpec ターゲットを使用してください。

  • BSONCXX_POLY_USE_STD_EXPERIMENTAL Cake オプションを削除し、実験的なC++標準ライブラリを polyfill オプションとして選択するためのサポートを廃止します。

The v 3.10.0 ドライバー リリースには、次の新機能が含まれています。

  • bsoncxxおよびmongocxxクラスタイプの非定義宣言を提供するフォワード ヘッダーを追加します。 ドライバーは、ライブラリ エンティティのユーザー定義によるフォワード宣言をサポートしていません。 ライブラリ エンティティの宣言または定義を取得するには、対応する ヘッダーを常に含めます。

  • CSpec オプションENABLE_BSONCXX_USE_POLY_IMPLSを使用すると、ポリゴン ライブラリが要求されていない場合に、デフォルトでC++ 17ポリゴンのbsoncxx実装を選択できます。 このオプションはデフォルトでOFFです。

  • CMax オプションBSONCXX_POLY_USE_IMPLSを使用すると、外部ライブラリまたはC++標準ライブラリの代わりに、 C++ 17ポリゴンのbsoncxx実装を選択できます。 このオプションはデフォルトでOFFです。

  • bsoncxx::v_noabimongocxx::v_noabiの名前空間は、インラインで宣言されなくなりました。 ルート名前空間宣言は引き続きサポートされ、以前の定義と同等であることが予想されます。 例、 bsoncxx::documentは依然としてbsoncxx::v_noabi::documentと同等であり、 mongocxx::clientは引き続きmongocxx::v_noabi::clientと同等です。

  • デフォルトでは 、ライブラリのファイル名が MSV でコンパイルされると(CSpec の MSVC 変数によって検出)、ABI タグstringが埋め込まれます。 これらの文字列は次のようになります。

    bsoncxx-v_noabi-rhs-x64-v142-md.lib

    この動作を無効にするには、CSpec 構成の一部としてENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFFを設定します。

    ABI タグ string は、次のように pkg-configメタデータファイル名に埋め込むこともできます。

    libbsoncxx-v_noabi-rhs-x64-v142-md.pc

    この動作を有効にするには、CMax 構成の一部としてENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ONENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ONを設定します。

このリリースの詳細については、 v3.10 リリースノート を参照してくださいGithub .

警告

システムの重大な変更の構築

v 3.9ドライバーは、次の重大な変更を導入します。

  • CSpecプロジェクト構築ツリーからエクスポートされたターゲットのサポートを削除します

  • macOS 10.14 、 macOS 10.15 、 Ubuntu 14.04のサポートを廃止します。

  • MongoDB Cドライバー v 1.25.0以降が必要

  • FetchContentモジュールをサポートするには CMax v 3.15以降が必要

v 3.9ドライバーのリリースには、次の新機能が含まれています。

  • C++ドライバーコンテナイメージが Dockerハブで利用できるようになりました。

  • MongoDB C ドライバーの依存関係を指定しない場合、ドライバーは自動的にMongoDB Cドライバーの依存関係をダウンロードします。

  • ドライバーは、 allターゲットの一部としてテストをビルドしなくなりました。 テストを構築するには、CSpec 構成の一部としてBUILD_TESTING=ONを設定します。

  • ドライバーは モジュールを使用してFetchContent MNMLSTC コア をダウンロードと構築します システムによって提供されていない場合は、ExternalProject モジュールの代わりに 多角形 ライブラリが使用されます。また、MNMLSTC Core ヘッダーのincludeディレクティブもパッチされません。

  • CMax オプションMONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIXを追加します。 このオプションがTRUEに設定されている場合、 CMAKE_INSTALL_PREFIXオプションはデフォルトでビルドディレクトリになります。 このオプションのデフォルト値はTRUEです。

  • Atlas Search インデックスを管理するためのAPIを追加します。

  • VERSIONINFOリソースをbsoncxx.dllmongocxx.dllに追加します。

  • APMコールバックから例外をスローするドキュメントは、明示的に未定義の動作です。

  • CMax ビルド ステップ中に MNMLSTC コア ヘッダーを早期インストールしません。

  • インストールされたすべてのC++ドライバーパッケージ構成で、 MongoDB Cドライバー CMaxパッケージがfind_dependency()経由で見つかる必要があります。

このリリースの詳細については、 v3.9 リリースノート を参照してくださいGithub .

戻る

ABI のバージョン管理