typedef的前向声明

时间:2016-03-05 15:39:07

标签: c++ c++11 boost forward-declaration ptree

我有以下代码:

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 个答案:

答案 0 :(得分:2)

您无法转发声明类型成员的前向声明类型。这样您就可以从echo $_GET["u"]; (不推荐)中提取value_type的实际定义,或只是包含完整标题ptree

在头文件中需要类的内部后,不能选择forward-declaration。