Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++中的前向声明_C++_Templates_Forward Declaration - Fatal编程技术网

C++中的前向声明

C++中的前向声明,c++,templates,forward-declaration,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;

我想声明:

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

但我的g++由于默认模板参数而忽略了重新定义。如何实现这一点?

要向前声明属性树,您应该包括

#include <boost/property_tree/ptree_fwd.hpp>

头,而不是自己声明一个。

要向前声明属性树,应该包括

#include <boost/property_tree/ptree_fwd.hpp>

头,而不是自己声明一个。

不包含选项?不包含选项?转发声明的要点是不希望包含头。@作业:错误。重点是没有给出整个结构的完整定义,以允许向前参考。。。。当标题被调用时…\u fwd。hpp@KennyTM:当然,这就是我的意思。我同意我没有说得很清楚:-而且,我没有注意到_fwd.hpp。Boost会为转发声明制作特殊的标题吗?@Job:Yes。由于通常未指定如何定义填充,唯一安全的方法是包含_fwd头。转发声明的要点是不希望包含头。@作业:错误。重点是没有给出整个结构的完整定义,以允许向前参考。。。。当标题被调用时…\u fwd。hpp@KennyTM:当然,这就是我的意思。我同意我没有说得很清楚:-而且,我没有注意到_fwd.hpp。Boost会为转发声明制作特殊的标题吗?@Job:Yes。因为通常未指定如何定义填充,所以唯一安全的方法是包含_fwd头。