Использование rapidjson::Document в качестве ошибки указателя
У меня есть переменная класса, которая является указателем, rapidjson::Document. У меня проблемы с использованием этого указателя с ParseStream. Я не могу найти примеры использования указателя на переменную документа. Может быть, кому-то еще повезло, используя это как указатель вместо ссылки? У меня проблема с ошибкой компиляции / видя в чем проблема.
OurClassDOM.h
class OurClassDOM {
OurClassDOM(){}
template<typename T> OurClassDOM(const OurString &n, const T &v)
:
pDocument(new rapidjson::Document(n, v)){}
OurClassDOM(const OurClassDOM &rhs)
{
pDocument = new rapidjson::Document;
//copy it
}
OurClassDOM(const rapidjson::Document &rhs)
{
pDocument = new rapidjson::Document;
//copy it
}
virtual OurClassDOM clone() const
{return(*this); }
private:
OurClassDOM &operator=(const OurClassDOM &);
ourPtr<rapidjson::Document> pDocument;
...
}
OurclassDOM.cpp
...
void OurClassDOM::parse(const std::string& json) const {
rapidjson::StringStream strString(json.c_str());
pDocument->ParseStream(strStream);
}
...
//compilation error at -> says:
error C2662: 'rapidjson::GenericDocument<Encoding> &rapidjson::GenericDocument<Encoding>::ParseStream<0,rapidjson::StringStream>(InputStream &)' : cannot convert 'this' pointer from 'const rapidjson::Document' to 'rapidjson::GenericDocument<Encoding> &'
Я могу получить это для компиляции только когда это так:
rapidjson::Document document;
rapidjson::StringStream strStream(json.c_str());
rapidjson::ParseResult result = document.ParseStream(strStream); //compiles
Как мне заставить его скомпилировать с указателем? У меня уже есть указатель в моих конструкторах и т. Д., И я предпочел бы не переключаться на ссылку на класс. Я не могу найти никаких примеров в Интернете использования документа указателя с этим вместо ссылки.