C++ 在Rapidjson中使用Move

C++ 在Rapidjson中使用Move,c++,rapidjson,C++,Rapidjson,我想知道以下两种方法在rapidjson中的区别,我已经试过阅读了,但仍然感到困惑 1. doc.AddMember("tag", tag_str, doc.GetAllocator()); 2. doc.AddMember("tag", rapidjson::Value(tag_str).Move(), doc.GetAllocator()); 我想知道这两种用法的区别,谢谢 1. doc.AddMember("tag", tag_str, doc.GetAllocator()); 这会通

我想知道以下两种方法在rapidjson中的区别,我已经试过阅读了,但仍然感到困惑

1. doc.AddMember("tag", tag_str, doc.GetAllocator());
2. doc.AddMember("tag", rapidjson::Value(tag_str).Move(), doc.GetAllocator());
我想知道这两种用法的区别,谢谢

1. doc.AddMember("tag", tag_str, doc.GetAllocator());
这会通过常量引用将标记添加到文档中。所以tag_str必须比文档寿命长

2. doc.AddMember("tag", rapidjson::Value(tag_str).Move(), doc.GetAllocator());

这会将标记值复制到值对象中,然后将其移动到文档中。

欢迎使用SO。您的问题不包含问题。你有什么困惑吗?总是试着想象一个回答你问题的人对你的想法一无所知。把自己放在别人的鞋子里,我想知道上面两种方式的区别
2. doc.AddMember("tag", rapidjson::Value(tag_str).Move(), doc.GetAllocator());