Menu Docs
Página inicial do Docs
/ / /
Driver C++

NOVIDADES

Nesta página

  • Visão geral
  • Tipos de alterações significativas
  • Novidades no 3.11
  • Novidades no 3.10
  • Novidades no 3.9

Descubra as novidades de cada versão:

  • Versão 3.11

  • Versão 3.10

  • Versão 3.9

Novas versões do driver C++ podem introduzir os seguintes tipos de alterações significativas:

  • As alterações da API referem-se à API das bibliotecas de drivers C++ . Essas alterações são acompanhados por um aumento na versão principal da API. Talvez seja necessário editar o código-fonte C++ em seu projeto para resolver essas alterações.

    Exemplo

    • Remove a declaração da função v1::func(). (A definição ainda é fornecida para compatibilidade com ABI.)

    • Remove a função embutida v_noabi::func().

    • Remove v_noabi::func().

    • Altera a redeclaração de bsoncxx::foo de v1::foo para v2::foo. Para continuar usando a interface antiga, qualifique bsoncxx::foo como bsoncxx::v1::foo.

  • As alterações da ABI referem-se à ABI das bibliotecas de drivers C++ . Essas alterações são acompanhados por um aumento na versão da ABI e também podem ser acompanhados por um aumento na versão principal da API. Talvez seja necessário reconstruir seu projeto ou editar seu código-fonte C++ para resolver essas alterações.

    A estabilidade da ABI não é suportada para símbolos correspondentes a entidades declaradas no namespace v_noabi . As alterações significativas para esses símbolos não são necessariamente acompanhados por um aumento na versão da ABI.

    Exemplo

    • Remove o símbolo exportado v_noabi::func().

    • Remove o símbolo exportado v1::func().

    • Remove os símbolos exportados para v1::type.

  • As alterações do sistema de compilação estão relacionadas ao sistema de compilação ou à embalagem das bibliotecas de drivers C++ . Essas alterações não são necessariamente acompanhas por um aumento na versão principal da API ou um aumento na versão da ABI. Para resolver essas alterações, talvez seja necessário modificar as configurações do sistema de compilação ou atualizar as configurações de gerenciamento de pacote ou dependências do projeto. Talvez você também precise modificar ou reconstruir seu código-fonte C++ .

    Exemplo

    • Remove a variável de configuração do ENABLE_FOO .

    • Altera o valor padrão da variável de configuração ENABLE_BAR de OFF para ON.

    • Suporte de drops para a plataforma A, compilador B ou arquitetura C.

Aviso

Mudanças de última hora

O driver3.11 introduz as seguintes alterações significativas:

  • Elimina o suporte para o MongoDB Server v3.6.

  • Requer o Driver MongoDB C v1.28.0 ou posterior.

  • Remove a exportação das seguintes funções de membro privado na ABI bsoncxx:

    • 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*)

  • Remove a exportação das seguintes funções de membro privado na ABI mongocxx:

    • 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()

  • Declare todos os símbolos de funções exportadas com __cdecl quando compilados com MSVC. Esta é uma alteração interruptiva de ABI se você usar uma convenção de chamada padrão alternativa ao construir projetos.

A versão do driver v3.11 inclui os seguintes novos recursos:

  • Adiciona suporte para MongoDB Server v8.0.

  • Adiciona suporte para queries de intervalo de Queryable Encryption . Para usar esse recurso, seu aplicativo deve se conectar ao MongoDB Server 8.0 ou posterior. Para obter mais informações sobre Queryable Encryption, consulte Queryable Encryption no manual do MongoDB Server .

  • Adiciona a função de membro empty() para mongocxx::v_noabi::bulk_write.

Para saber mais sobre esta versão, consulte as Notas de versão do v3.11 no Github.

Aviso

Construa alterações significativas no sistema

O driver3.10 introduz as seguintes alterações significativas no sistema de compilação:

  • Suporte para chamadas find_package(libbsoncxx) e find_package(libmongocxx). Em vez disso , use find_package(bsoncxx) e find_package(mongocxx) .

  • Descarta o suporte para as variáveis LIBBSONCXX_* e LIBMONGOCXX_* CMake fornecidas pelos arquivos de configuração do pacote CMake legado . Use os destinos CMake mongo::bsoncxx_* e mongo::mongocxx_* .

  • Remove a opção BSONCXX_POLY_USE_STD_EXPERIMENTAL CMake e elimina o suporte para selecionar a biblioteca padrão experimental do C++ como uma opção de polyfill.

O v3.10.0 a versão do driver inclui as seguintes novas funcionalidades:

  • Adiciona cabeçalhos de encaminhamento que fornecem declarações não definidoras de tipos de classe bsoncxx e mongocxx . O driver não é compatível com declarações de encaminhamento definidas pelo usuário de qualquer entidade de biblioteca. Para obter a declaração ou definição de uma entidade da biblioteca, inclua sempre o cabeçalho correspondente.

  • A opção ENABLE_BSONCXX_USE_POLY_IMPLS do CMake permite selecionar bsoncxx implementações de polyfills17 C++ por padrão quando nenhuma biblioteca de polyfill é solicitada. Esta opção é OFF por padrão.

  • A opção BSONCXX_POLY_USE_IMPLS do CMake permite selecionar implementações bsoncxx 1} de polyfills17 do C++ em vez de bibliotecas externas ou da biblioteca padrão do C++ . Esta opção é OFF por padrão.

  • Os namespaces bsoncxx::v_noabi e mongocxx::v_noabi não são mais declarados embutidos. As declarações de namespace raiz ainda são suportadas e espera-se que permaneçam equivalentes às definições anteriores. Por exemplo, bsoncxx::document ainda é equivalente a bsoncxx::v_noabi::document e mongocxx::client ainda é equivalente a mongocxx::v_noabi::client.

  • Por padrão, quando os nomes de arquivos da biblioteca são compilados com MSVC (conforme detectado pela variável MSVC do CMake), eles são incorporados a uma string de caracteres de tag ABI. Essas strings são semelhantes às seguintes:

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

    Para desabilitar este comportamento, defina o ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFF como parte de sua configuração do CMake.

    A string da tag ABI também pode ser incorporada em nomes de arquivos de metadados pkg-config, semelhantes aos seguintes:

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

    Para habilitar este comportamento, defina ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ON e ENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ON como parte de sua configuração do CMake.

Para saber mais sobre esta versão, consulte as Notas de versão do v3.10 no Github.

Aviso

Construa alterações significativas no sistema

O driver3.9 introduz as seguintes alterações significativas:

  • Remove o suporte para destinos exportados da árvore de compilação do projeto CMake

  • Elimina o suporte para macOS 10.14, macOS 10.15 e Ubuntu 14.04

  • Exige MongoDB C Driver v1.25.0 ou posterior

  • Requer CMake v3.15 ou posterior para suportar o módulo FetchContent

A versão do driver v3.9 inclui os seguintes novos recursos:

  • A imagem do container do driver C++ agora está disponível no Docker Hub.

  • O driver baixa automaticamente a dependência do driver MongoDB C se você não fornecer.

  • O driver já não constrói testes como parte do alvo all . Para construir testes, defina o BUILD_TESTING=ON como parte da configuração do CMake.

  • O driver utiliza o FetchContent módulo para baixar e construir o Núcleo MONMLSTC biblioteca polyfill, se não for fornecida pelo sistema, em vez do ExternalProject módulo . Ele também não corrige diretivas include em cabeçalhos MONMLSTC Core.

  • Adiciona a opção CMake MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX. Se essa opção estiver definida como TRUE, a opção CMAKE_INSTALL_PREFIX assumirá como padrão o diretório de construção. O valor padrão desta opção é TRUE.

  • Adiciona uma API para gerenciar índices do Atlas Search .

  • Adiciona o recurso VERSIONINFO a bsoncxx.dll e mongocxx.dll.

  • Documenta explicitamente que lançar uma exceção de uma chamada de resposta de resposta APM é um comportamento indefinido.

  • Não instala prematuramente cabeçalhos MONMLSTC Core durante a etapa de compilação do CMake.

  • Requer que um pacote MongoDB C Driver CMake seja encontrado via find_dependency() para todas as configurações de pacote de driver C++ instaladas.

Para saber mais sobre esta versão, consulte as Notas de versão do v3.9 no Github.

Voltar

Controle de Versão ABI