Docs Menu
Docs Home
/ / /
C++ Driver

What's New

On this page

  • Overview
  • What's New in 4.0
  • What's New in 3.11
  • What's New in 3.10
  • What's New in 3.9

Learn what's new in:

  • Version 4.0

  • Version 3.11

  • Version 3.10

  • Version 3.9

Warning

Breaking Changes

C++ driver v4.0 contains breaking changes. For more information, see Version 4.0 in the Upgrade Driver Versions guide.

The v4.0 driver release includes the following new features:

  • Adds a getter method for the start_at_operation_time field of a mongocxx::options::change_stream instance.

Warning

Breaking Changes

C++ driver v3.11 contains breaking changes. For more information, see Version 3.11 in the Upgrade Driver Versions guide.

The v3.11 driver release includes the following new features:

  • Adds support for MongoDB Server v8.0.

  • Adds support for Queryable Encryption range queries. To use this feature, your app must connect to MongoDB Server 8.0 or later. For more information about Queryable Encryption, see Queryable Encryption in the MongoDB Server manual.

  • Adds empty() member function for mongocxx::v_noabi::bulk_write.

To learn more about this release, see the v3.11 Release Notes on GitHub.

Warning

Breaking Changes

C++ driver v3.10 contains breaking changes. For more information, see Version 3.10 in the Upgrade Driver Versions guide.

The v3.10.0 driver release includes the following new features:

  • Adds forward headers that provide non-defining declarations of bsoncxx and mongocxx class types. The driver does not support user-defined forward declarations of any library entity. To obtain the declaration or definition of a library entity, always include the corresponding header.

  • The CMake option ENABLE_BSONCXX_USE_POLY_IMPLS allows selecting bsoncxx implementations of C++17 polyfills by default when no polyfill library is requested. This option is OFF by default.

  • The CMake option BSONCXX_POLY_USE_IMPLS allows selecting bsoncxx implementations of C++17 polyfills instead of external libraries or the C++ standard library. This option is OFF by default.

  • The bsoncxx::v_noabi and mongocxx::v_noabi namespaces are no longer declared inline. Root namespace declarations are still supported and expected to remain equivalent to their prior definitions. For example, bsoncxx::document is still equivalent to bsoncxx::v_noabi::document, and mongocxx::client is still equivalent to mongocxx::v_noabi::client.

  • By default, when library filenames are compiled with MSVC (as detected by CMake's MSVC variable), they are embedded with an ABI tag string. These strings are similar to the following:

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

    To disable this behavior, set ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFF as part of your CMake configuration.

    The ABI tag string can also be embedded in pkg-config metadata filenames, similar to the following:

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

    To enable this behavior, set ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ON and ENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ON as part of your CMake configuration.

To learn more about this release, see the v3.10 Release Notes on GitHub.

Warning

Breaking Changes

C++ driver v3.9 contains breaking changes. For more information, see Version 3.9 in the Upgrade Driver Versions guide.

The v3.9 driver release includes the following new features:

  • The C++ driver container image is now available on Docker hub.

  • The driver automatically downloads the MongoDB C Driver dependency if you don't provide it.

  • The driver no longer builds tests as part of the all target. To build tests, set BUILD_TESTING=ON as part of your CMake configuration.

  • The driver uses the FetchContent module to download and build the MNMLSTC Core polyfill library, if not provided by the system, instead of the ExternalProject module. It also does not patch include directives in MNMLSTC Core headers.

  • Adds the CMake option MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX. If this option is set to TRUE, the CMAKE_INSTALL_PREFIX option defaults to the build directory. The default value of this option is TRUE.

  • Adds an API for managing Atlas Search indexes.

  • Adds the VERSIONINFO resource to bsoncxx.dll and mongocxx.dll.

  • Explicitly documents that throwing an exception from an APM callback is undefined behavior.

  • Does not prematurely install MNMLSTC Core headers during the CMake build step.

  • Requires that a MongoDB C Driver CMake package is found via find_dependency() for all installed C++ driver package configurations.

To learn more about this release, see the v3.9 Release Notes on GitHub.

Back

ABI Versioning