id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 1480,Boost:::Spirit bug in tree_to_xml.ipp,anonymous,Hartmut Kaiser,"Following code from head revision of boost::spirit(boost repository) generate error. #define UNICODE #define _UNICODE #include #include #include #include #include ""tree_calc_grammar.hpp"" #include #include #include using namespace std; using namespace boost::spirit; #ifdef _UNICODE typedef wchar_t char_t; #else typedef char char_t; #endif typedef std::basic_string::iterator iterator_t; typedef tree_match parse_tree_match_t; typedef parse_tree_match_t::tree_iterator iter_t; int main() { std::basic_string input(_TEXT(""1+2"")); calculator calc; tree_parse_info ast_info = ast_parse( iterator_t(input.begin()), iterator_t(input.end()), calc >> end_p, space_p); std::wcout << ((ast_info.full) ? _TEXT(""Full"") : _TEXT(""Not full"")) << std::endl; std::basic_fstream file; file.open(_TEXT(""output.xml""), std::ios_base::out); basic_tree_to_xml(file, ast_info.trees, input); return 0; } For building I use VC8.0 and it gives errors: 1>c:\work\boost\boost_lv\boost\spirit\tree\impl\tree_to_xml.ipp(482) : error C2664: 'boost::spirit::xml::document::document(std::basic_ostream<_Elem,_Traits> &,const CharT *,const CharT *)' : cannot convert parameter 2 from 'std::wstring' to 'const char_t *' 1> with 1> [ 1> CharT=char_t, 1> _Elem=wchar_t, 1> _Traits=std::char_traits 1> ] 1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called I fixed some bugs in tree_to_xml.ipp and check basic_tree_to_xml() on my tests, it seems work right. You can download it http://webfile.ru/1616184 -- Best Regards, Kudiyarov Roman. ",Bugs,closed,To Be Determined,spirit,Boost 1.34.1,Problem,fixed,,