我创建了一个类来调用和测试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,那就有点奇怪了。我怎么才能修复它?
发布于 2019-03-27 14:48:31
来自:http://mongocxx.org/api/current/classmongocxx_1_1instance.html
表示MongoDB驱动程序实例的
类。
构造函数和析构函数分别初始化和关闭驱动程序。因此,必须在使用驱动程序之前创建一个实例,并且该实例必须保持活动状态,直到所有其他mongocxx对象被销毁。实例析构函数运行后,驱动程序可能无法使用。
在给定的程序中只能创建一个实例。不构造一个实例或在程序中构造多个实例都是错误的,即使多个实例的生命周期不重叠。
似乎你不能有两个实例,但也许你可以创建/销毁一个实例,然后重新创建/销毁另一个实例。
你的第一个实例来自哪里?
https://stackoverflow.com/questions/55370281
复制相似问题