问题就出在这个类型:
template<typename CharType>
class GenericStringRef;
这个类型就像他的名字一样,是内容的引用。对于字符串类型,它不分配内存,所以传入的指针直接是拷贝。
对于临时变量的std::string传入,必须满足的条件:
临时变量的生命周期必须延续到此GenericStringRef对象的生命周期结束。注意GenericStringRef是支持拷贝的,也就是与此相关联的对象的生命周期结束才算结束!
相比其它json库,rapidjson的对外接口,不太符合modern c++的诸多设计理念,使用过程中需要先认真阅读文档或者自己研究一下代码。