c ++中的前向声明

kum*_*mar 1 c++ templates forward-declaration

我想转发声明:

namespace boost {
    namespace property_tree {
        template<typename Key, typename Data, typename KeyCompare = std::less<Key> >
        class basic_ptree;
        typedef basic_ptree< std::string, std::string > ptree;
    }
}
Run Code Online (Sandbox Code Playgroud)

但由于默认模板参数,我的g ++关于重新定义.我怎样才能做到这一点?

ken*_*ytm 5

要转发声明property_tree,您应该包含

#include <boost/property_tree/ptree_fwd.hpp>
Run Code Online (Sandbox Code Playgroud)

标题,而不是自己声明一个.

  • @Job:错了.关于[前向声明](http://en.wikipedia.org/wiki/Forward_declaration)的观点是*没有给出整个结构*的完整定义,以允许前向引用. (4认同)