Использование 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

Как мне заставить его скомпилировать с указателем? У меня уже есть указатель в моих конструкторах и т. Д., И я предпочел бы не переключаться на ссылку на класс. Я не могу найти никаких примеров в Интернете использования документа указателя с этим вместо ссылки.

0 ответов

Другие вопросы по тегам