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)