
Hy i have problem with #include "windows.h" #include <boost/bind.hpp> #include <boost/function.hpp> #include <iostream> #include <map> #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/json_parser.hpp> #include <boost/property_tree/info_parser.hpp> #include <boost/property_tree/xml_parser.hpp> #include <boost/property_tree/exceptions.hpp> #include <boost/property_tree/ptree_fwd.hpp> #include <boost/property_tree/string_path.hpp> #include <boost/property_tree/stream_translator.hpp> #include <boost/property_tree/exceptions.hpp> #include <boost/property_tree/detail/ptree_utils.hpp> namespace property_tree = boost::property_tree; namespace json_parser = boost::property_tree::json_parser; namespace info_parser = boost::property_tree::info_parser; namespace xml_parser = boost::property_tree::xml_parser; class DataHold { public: const DataHold& DataHold::operator=(const DataHold& oth) { return oth; } DataHold::DataHold(void) : _dht(DHT_NULL) {/**/} DataHold::DataHold(int* d) : _d_pint(d), _dht(DHT_PINT) {/**/} DataHold::DataHold(char* d) : _d_pchar(d), _dht(DHT_PCHAR) {/**/} DataHold::DataHold(float* d) : _d_pfloat(d), _dht(DHT_PFLOAT) {/**/} DataHold::DataHold(double* d) : _d_pdouble(d), _dht(DHT_PDOUBLE) {/**/} DataHold::DataHold(bool* d) : _d_pbool(d), _dht(DHT_PBOOL) {/**/} DataHold::DataHold(std::string* d) : _d_pstdstr(d), _dht(DHT_PSTDSTRING) {/**/} typedef enum { DHT_NULL, DHT_PINT, DHT_PCHAR, DHT_PBOOL, DHT_PFLOAT, DHT_PDOUBLE, DHT_PSTDSTRING } DATA_HOLD_TYPE; DATA_HOLD_TYPE DataHold::TypeIndex() const {return _dht;} int* _d_pint; char* _d_pchar; bool* _d_pbool; float* _d_pfloat; double* _d_pdouble; std::string* _d_pstdstr; bool empty() const { return _dht==DHT_NULL; } friend std::ostream& operator<< (std::ostream &os,const DataHold &me) { os << (int)(me.TypeIndex()); return os; } private: friend class property_tree::basic_ptree<std::string,DataHold>; void swap(DataHold& x) { int* dint = x._d_pint; char* dchr = x._d_pchar; bool* dbol = x._d_pbool; float* dflt = x._d_pfloat; double* ddbl = x._d_pdouble; std::string* dstr = x._d_pstdstr; DATA_HOLD_TYPE dht = x._dht; x._d_pint = this->_d_pint; x._d_pchar = this->_d_pchar; x._d_pbool = this->_d_pbool; x._d_pfloat = this->_d_pfloat; x._d_pdouble = this->_d_pdouble; x._d_pstdstr = this->_d_pstdstr; x._dht = this->_dht; this->_d_pint = dint; this->_d_pchar = dchr; this->_d_pbool = dbol; this->_d_pfloat = dflt; this->_d_pdouble = ddbl; this->_d_pstdstr = dstr; this->_dht = dht; } DATA_HOLD_TYPE _dht; }; namespace prop_tree { typedef property_tree::basic_ptree<std::string,DataHold> ptreedh; }; int main(int argc, char** argv) { std::string nejm = "Test"; std::string priimk = "Bla"; int dejt[3] = {14, 06, 2010}; float height = 181.5f; float weight = 57.5f; prop_tree::ptreedh ptree_rt; prop_tree::ptreedh pt = ptree_rt.put("oseba.ime", DataHold(&nejm)); std::cout << ptree_rt.get_value("oseba.ime"); system("pause"); return 0; } I get these errors in Visual Studio C++ 2008 when trying to compile. 1>------ Build started: Project: DebugServerLib, Configuration: Debug Win32 ------ 1>Compiling... 1>main.cpp 1>p:\cpp\boost\include\boost-1_42\boost\property_tree\detail\ptree_implementation.hpp(655) : error C2027: use of undefined type 'boost::property_tree::translator_between<Internal,External>' 1> with 1> [ 1> Internal=DataHold, 1> External=std::basic_string<char,std::char_traits<char>,std::allocator<char>> 1> ] 1> p:\cpp\boost\include\boost-1_42\boost\property_tree\detail\ptree_implementation.hpp(666) : see reference to function template instantiation 'std::basic_string<_Elem,_Traits,_Ax> boost::property_tree::basic_ptree<Key,Data>::get_value<std::basic_string<_Elem,_Traits,_Ax>>(const Type &) const' being compiled 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char>, 1> Key=std::string, 1> Data=DataHold, 1> Type=std::basic_string<char,std::char_traits<char>,std::allocator<char>> 1> ] 1> p:\cpp\debugserverlib\debugserverlib\main.cpp(156) : see reference to function template instantiation 'std::basic_string<_Elem,_Traits,_Ax> boost::property_tree::basic_ptree<Key,Data>::get_value<char>(const Ch *) const' being compiled 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char>, 1> Key=std::string, 1> Data=DataHold, 1> Ch=char 1> ] 1>p:\cpp\boost\include\boost-1_42\boost\property_tree\detail\ptree_implementation.hpp(655) : error C2955: 'boost::type' : use of class template requires template argument list 1> p:\cpp\boost\include\boost-1_42\boost\type.hpp(14) : see declaration of 'boost::type' 1>p:\cpp\boost\include\boost-1_42\boost\property_tree\detail\ptree_implementation.hpp(655) : error C2780: 'boost::enable_if<boost::property_tree::detail::is_character<Ch>,std::basic_string<Ch>>::type boost::property_tree::basic_ptree<Key,Data>::get_value(const Ch *) const' : expects 1 arguments - 2 provided 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1> p:\cpp\boost\include\boost-1_42\boost\property_tree\ptree.hpp(344) : see declaration of 'boost::property_tree::basic_ptree<Key,Data>::get_value' 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1>p:\cpp\boost\include\boost-1_42\boost\property_tree\detail\ptree_implementation.hpp(655) : error C2780: 'boost::disable_if<boost::property_tree::detail::is_translator<Type>,Type>::type boost::property_tree::basic_ptree<Key,Data>::get_value(const Type &) const' : expects 1 arguments - 2 provided 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1> p:\cpp\boost\include\boost-1_42\boost\property_tree\ptree.hpp(336) : see declaration of 'boost::property_tree::basic_ptree<Key,Data>::get_value' 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1>p:\cpp\boost\include\boost-1_42\boost\property_tree\detail\ptree_implementation.hpp(655) : error C2784: 'boost::enable_if<boost::property_tree::detail::is_character<Ch>,std::basic_string<Ch>>::type boost::property_tree::basic_ptree<Key,Data>::get_value(const Ch *,Translator) const' : could not deduce template argument for 'const Ch *' from 'const std::basic_string<_Elem,_Traits,_Ax>' 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1> and 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char> 1> ] 1> p:\cpp\boost\include\boost-1_42\boost\property_tree\ptree.hpp(328) : see declaration of 'boost::property_tree::basic_ptree<Key,Data>::get_value' 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1>p:\cpp\boost\include\boost-1_42\boost\property_tree\detail\ptree_implementation.hpp(655) : error C2780: 'Type boost::property_tree::basic_ptree<Key,Data>::get_value(void) const' : expects 0 arguments - 2 provided 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1> p:\cpp\boost\include\boost-1_42\boost\property_tree\ptree.hpp(313) : see declaration of 'boost::property_tree::basic_ptree<Key,Data>::get_value' 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1>p:\cpp\boost\include\boost-1_42\boost\property_tree\detail\ptree_implementation.hpp(655) : error C2780: 'boost::enable_if<boost::property_tree::detail::is_translator<Translator>,Type>::type boost::property_tree::basic_ptree<Key,Data>::get_value(Translator) const' : expects 1 arguments - 2 provided 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1> p:\cpp\boost\include\boost-1_42\boost\property_tree\ptree.hpp(306) : see declaration of 'boost::property_tree::basic_ptree<Key,Data>::get_value' 1> with 1> [ 1> Key=std::string, 1> Data=DataHold 1> ] 1>Build Time 0:05 1>Build log was saved at "file://p:\cpp\DebugServerLib\DebugServerLib\Debug\BuildLog.htm" 1>DebugServerLib - 7 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========