Форвардное объявление typedef

У меня есть следующий код:

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

1

Решение

Вы не можете переслать объявление члена типа вне объявленного типа. Это оставляет вас либо просто вытаскивая фактическое определение value_type от ptree (не рекомендуется) или просто включив полный заголовок ptree.hpp,

Как только вам понадобится внутреннее содержимое класса в вашем заголовочном файле, предварительное объявление не будет возможным.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]