首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rapidjson::文档在std::结对

rapidjson::文档在std::结对
EN

Stack Overflow用户
提问于 2014-04-07 08:41:37
回答 1查看 1.6K关注 0票数 1

我得到了这个错误:

代码语言:javascript
复制
Undefined symbols for architecture i386:
rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> >::GenericValue(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&)

当我试图在一对中返回rapidjson::Document时,这个错误会跳转到我身上:

代码语言:javascript
复制
typedef std::pair<rapidjson::Document, std::string> ProcessedResponseResult;

ProcessedResponseResult ProcessResponse(HttpResponse* response)
{
    rapidjson::Document jsonDoc;
    ...
    return ProcessedResponseResult(jsonDoc, std::string());
}

如果有帮助的话,rapidjson是一个只有头的库。

为什么我不能把这双退了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-07 12:06:33

当您构造一个ProcessedResponseResult时,它将调用rapidjson::Document的复制构造函数,但是在文件rapidjason/document.h中,为了防止复制rapidjson::Document对象,它声明了一个私有的复制构造函数,并且没有实现它,因此这会导致链接器错误。

代码语言:javascript
复制
//! Copy constructor is not permitted.
private:
    GenericValue(const GenericValue& rhs);

如果您使用std::pair的原因只是为了从函数返回2个值,我建议通过引用传递jsonDoc

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

https://stackoverflow.com/questions/22907480

复制
相关文章

相似问题

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