如果已创建 mongocxx::实例对象,则无法创建该对象

cannot create a mongocxx::instance object if one has already been created

本文关键字:创建 对象 实例 mongocxx 如果      更新时间:2023-10-16

我创建了一个类来调用和测试mongo-cxx-driver,并在构造函数中创建了一个mongocxx::instance

MongoDBHelper::MongoDBHelper()
{
    mongocxx::instance inst{};
}

问题是当我初始化我的类对象的第二个实例时,结果是:

cannot create a mongocxx::instance object if one has already been created

如果我mongocxx::instance放在全局范围内或使用std::call_once,那会有点奇怪.我该如何解决它?

from : http://mongocxx.org/api/current/classmongocxx_1_1instance.html

表示 MongoDB 驱动程序实例的类。

构造函数和析构函数分别初始化和关闭驱动程序。因此,必须在使用驱动程序之前创建一个实例,并且必须保持活动状态,直到所有其他 mongocxx 对象被销毁。实例析构函数运行后,可能无法使用驱动程序。

必须在给定程序中只创建一个实例。不构造实例或在程序中构造多个实例都是错误,即使多个实例具有不重叠的生存期也是如此。

似乎你不能有 2 个实例,但也许你可以创建/销毁一个,然后重新创建/销毁另一个。

您的第一个实例来自哪里?