У меня есть следующий код:
namespace boost {
namespace property_tree {
template<class Key, class Data, class KeyCompare>
class basic_ptree;
typedef basic_ptree<std::string, std::string, std::less<std::string> > ptree;
}
}
class JsonReader {
public:
JsonReader();
~JsonReader() { };
void processValuation(std::vector<Simulation> &simulations);
private:
std::string processOptionParams(const ptree::value_type &node);
void loadConfig(std::string filename);
std::shared_ptr<boost::property_tree::ptree> jsonTree_;
};
Все хорошо, но я не уверен, как вперед объявить ptree::value_type
,
Есть идеи как это можно сделать?
Файл с value_type
определение вы можете найти здесь
http://www.boost.org/doc/libs/1_60_0/boost/property_tree/ptree.hpp
Вы не можете переслать объявление члена типа вне объявленного типа. Это оставляет вас либо просто вытаскивая фактическое определение value_type
от ptree
(не рекомендуется) или просто включив полный заголовок ptree.hpp
,
Как только вам понадобится внутреннее содержимое класса в вашем заголовочном файле, предварительное объявление не будет возможным.
Других решений пока нет …