The example C:\boost_1_42_0\libs\property_tree\examples\custom_data_type.cpp fails to compile for me.
I am using Code::Blocks 8.02 with mingw gcc 4.4.0.
I am getting the following error message:
||=== test, Debug ===|
C:\projects\test\main2.cpp||In function 'int main()':|
C:\projects\test\main2.cpp|59|error: wrong number of template arguments (5, should be 3)|
C:\boost_1_42_0\boost\property_tree\ptree_fwd.hpp|29|error: provided for 'template<class Key, class Data, class KeyCompare> class boost::property_tree::basic_ptree'|
C:\projects\test\main2.cpp|59|error: invalid type in declaration before ';' token|
C:\projects\test\main2.cpp|63|error: request for member 'put' in 'pt', which is of non-class type 'my_ptree'|
C:\projects\test\main2.cpp|64|error: request for member 'get' in 'pt', which is of non-class type 'my_ptree'|
C:\projects\test\main2.cpp|64|error: expected primary-expression before 'int'|
C:\projects\test\main2.cpp|64|error: expected ',' or ';' before 'int'|
C:\projects\test\main2.cpp|68|error: request for member 'put' in 'pt', which is of non-class type 'my_ptree'|
C:\projects\test\main2.cpp|68|error: expected primary-expression before '>' token|
C:\projects\test\main2.cpp|68|warning: left-hand operand of comma has no effect|
C:\projects\test\main2.cpp|69|error: request for member 'get' in 'pt', which is of non-class type 'my_ptree'|
C:\projects\test\main2.cpp|69|error: expected primary-expression before '>' token|
C:\projects\test\main2.cpp|74|error: request for member 'put' in 'pt', which is of non-class type 'my_ptree'|
C:\projects\test\main2.cpp|74|error: expected primary-expression before '>' token|
C:\projects\test\main2.cpp|74|warning: left-hand operand of comma has no effect|
C:\projects\test\main2.cpp|75|error: request for member 'get' in 'pt', which is of non-class type 'my_ptree'|
C:\projects\test\main2.cpp|75|error: expected primary-expression before '>' token|
||=== Build finished: 15 errors, 2 warnings ===|
The problem seems to be the number of template parameters in line 59:
// Property_tree with boost::any as data type
// Key comparison: std::less<std::string>
// Key type: std::string
// Path type: path
// Data type: boost::any
// Translator type: my_translator
typedef basic_ptree<std::less<std::string>, std::string, path, boost::any, my_translator> my_ptree;
my_ptree pt;
Am I missing something ?
Thanks for your attention,
--
Mauricio Gomes
Pensar Digital
55-11-9698-1683 (Brazil - mobile)