C ++-将Rapidjson :: Document作为参数传递给函数

道伊

我将指针传递rapidjson::Document为参数。

foo(rapidjson::Document* jsonDocument)
{
    std::cout << jsonDocument["name"] << std::endl;
}

但是我无法jsonDocument["name"]访问name属性。

尝试不使用指针会导致错误:

error: 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::GenericDocument(const rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>&) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = rapidjson::CrtAllocator]' is private
GenericDocument(const GenericDocument&);

有人能帮我吗?

纪尧姆·拉西科特(Guillaume Racicot)

使用引用或值作为参数。使用[]带有指针会尝试使用您的文档,如果它是文件的数组。引用或值将调用期望的运算符。

// 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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将Go函数作为参数传递给C函数?

C将参数作为空指针列表传递给LoadLibrary()导入的函数

将Java脚本函数作为参数传递给C ++函数

将3D数组作为参数传递给C中的函数

如何使用Cython将python函数作为参数传递给c ++函数

将Cython类对象作为参数传递给C函数

将Nullable <T>作为类型参数传递给C#函数

如何将切片的每个元素作为单独的参数传递给可变参数C函数?

将lambda函数作为参数C ++传递

将按位运算作为参数传递给C中的函数

有什么方法可以将未知类型的数组作为参数传递给C中的函数?

如果传递的函数也将函数作为参数,如何将函数作为参数传递给C中的函数?

将结构成员作为参数传递给C中的函数

将ServiceClientCredentials作为参数传递给C#中的构造函数

将数组作为参数传递给C函数

如何将C#对象作为参数传递给Javascript函数

如何将常量数组作为参数传递给C ++函数/方法

(MATLAB / C ++)是否可以将函数作为参数传递给C ++ MEX函数?

将指针传递给char数组作为函数的参数-C

Android NDK如何将接收到的DatagramPacket作为参数传递给C函数?

将指向2D VLA的指针作为函数参数传递给C中的行向量

如何将float数组和float作为参数传递给C中的函数

C++:将未知联合传递给函数作为参数

将函数作为参数传递给函数

将数组作为参数传递给 C 中的 x86 函数

我如何将函数作为参数传递给 C++ 中的函数

将 httprequst 作为参数传递给函数 (C#)

如何将指针传递给在 C++ 中作为引用传递参数的函数

我无法将数组作为参数传递给 C# 中的函数