1

我有以下代码:

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_;
};

一切都很好,但我不确定如何转发 declare ptree::value_type。有什么想法怎么做?

value_type您可以在此处找到 带有定义的文件http://www.boost.org/doc/libs/1_60_0/boost/property_tree/ptree.hpp

4

1 回答 1

2

您不能从前向声明的类型中前向声明类型成员。value_type这让您要么只提取from的实际定义ptree(不推荐),要么只包含完整的 header ptree.hpp

一旦您需要头文件中的类的内部结构,就不能选择前向声明。

于 2016-03-05T15:51:43.763 回答