C++ C++;-将rapidjson::Document作为参数传递给函数
我将指向C++ C++;-将rapidjson::Document作为参数传递给函数,c++,json,arguments,rapidjson,C++,Json,Arguments,Rapidjson,我将指向rapidjson::Document的指针作为参数传递 foo(rapidjson::Document* jsonDocument) { std::cout << jsonDocument["name"] << std::endl; } 有人能帮我吗?使用引用或值作为参数。使用带有指针的[]将尝试使用您的文档,就像它是一个文档数组一样。引用或值将调用预期的运算符 // a const reference foo(const rapidjson::Doc
rapidjson::Document
的指针作为参数传递
foo(rapidjson::Document* jsonDocument)
{
std::cout << jsonDocument["name"] << std::endl;
}
有人能帮我吗?使用引用或值作为参数。使用带有指针的
[]
将尝试使用您的文档,就像它是一个文档数组一样。引用或值将调用预期的运算符
// a const reference
foo(const rapidjson::Document& jsonDocument) {
std::cout << jsonDocument["name"] << std::endl;
}
// a copy (or move)
foo(rapidjson::Document jsonDocument) {
std::cout << jsonDocument["name"] << std::endl;
}
找不到受骗者,但有很多。简言之,在使用指针之前,您需要先解除对指针的引用,如
(*jsonDocument)[“name”]
或jsonDocument[0][“name”]
或使用引用,如rapidjson::Document&jsonDocument
。使用引用是最好的解决方案。谢谢,我正在使用常量引用。如果您将文档作为常量引用传递,您可以添加如何在局部变量中保存值吗?这里有一个例子foo(const-rapidjson::Document&d){const-Value&v=d[“name”];}
@i7clock您指的是副本吗?如果是,则auto doc\u copy=doc代码>应该足够了。我的意思是为了进一步提取值和操作DOM,但是感谢您告诉我如何进行复制
// a const reference
foo(const rapidjson::Document& jsonDocument) {
std::cout << jsonDocument["name"] << std::endl;
}
// a copy (or move)
foo(rapidjson::Document jsonDocument) {
std::cout << jsonDocument["name"] << std::endl;
}
rapidjson::Document doc = /* ... */;
foo(doc);