如果已创建 mongocxx::实例对象,则无法创建该对象
cannot create a mongocxx::instance object if one has already been created
我创建了一个类来调用和测试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 个实例,但也许你可以创建/销毁一个,然后重新创建/销毁另一个。
您的第一个实例来自哪里?
相关文章:
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何创建对象函数指针C++映射?
- C++创建对象数组
- 在 C++ 的 Switch Case 中创建对象后对对象调用方法
- 如何获取在 main() 函数中构造的类的创建对象?
- 基于文件中的条目创建对象
- 错误:创建对象后无法分配区域
- C++ 通过输入创建对象
- 堆还是堆栈用于创建对象?
- 使用 C++ 创建对象数组
- 使用unique_ptr创建对象
- C++递归地在类构造函数中创建对象
- 通过向构造函数其他对象引用页面来创建对象
- ReactiveX (rx) - 在对象上应用可观察对象,而不是在可观察对象中创建对象
- 如何在OSX上正确创建C++对象文件(.o)
- 编译器是否会创建vtable,而不考虑在c++中创建对象
- 创建对象并防止被破坏
- 在C++中,友元类可以从友元类创建对象吗
- 只在堆中创建C++对象
- 创建用户定义的复制构造函数时无法创建对象