首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果已创建mongocxx::instance对象,则无法创建该对象

如果已创建mongocxx::instance对象,则无法创建该对象
EN

Stack Overflow用户
提问于 2019-03-27 13:21:33
回答 1查看 526关注 0票数 4

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

代码语言:javascript
复制
MongoDBHelper::MongoDBHelper()
{
    mongocxx::instance inst{};
}

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

代码语言:javascript
复制
cannot create a mongocxx::instance object if one has already been created

如果我把mongocxx::instance放在全局作用域中或者使用std::call_once,那就有点奇怪了。我怎么才能修复它?

EN

回答 1

Stack Overflow用户

发布于 2019-03-27 14:48:31

来自:http://mongocxx.org/api/current/classmongocxx_1_1instance.html

表示MongoDB驱动程序实例的

类。

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

在给定的程序中只能创建一个实例。不构造一个实例或在程序中构造多个实例都是错误的,即使多个实例的生命周期不重叠。

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55370281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档