2010-08-16 2 views
1

Я хочу передать провозглашают:опережающего объявления в C++

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

но мой г ++ шпаргалки о переопределении за неплатеж аргумент шаблона. Как я могу это достичь?

+3

'#include ' не вариант? – Thomas

ответ

5

Направить-декларировать property_tree, вы должны включить хедер

#include <boost/property_tree/ptree_fwd.hpp> 

, вместо того, чтобы объявить его самостоятельно.

+0

Дело в том, что вы не хотите включать заголовок. – Job

+4

@Job: Неправильно. Пункт [форвардная декларация] (http://en.wikipedia.org/wiki/Forward_declaration) - это * не предоставление полного определения всей структуры *, чтобы позволить прямую ссылку. – kennytm

+0

... когда заголовок называется '..._ fwd.hpp' –

Смежные вопросы