cannot propagate through the COM boundary. ErrorHandlerAdaptor now caches
reported errors until the parse has completed, then reports them to
ErrorHandler afterwards. This ensures that throw exceptions propogate as expected.
../../SAX/filter/Writer.h: In constructor
`SAX::basic_Writer<string_type>::basic_Writer(std::basic_ostream<string_type::value_type,
string_type::traits_type>&, unsigned int) [with string_type = std::string]':
writer.cpp:23: instantiated from here
../../SAX/filter/Writer.h:96: warning: member initializers for `
SAX::basic_LexicalHandler<std::string>*SAX::basic_Writer<std::string>::lexicalHandler_'
../../SAX/filter/Writer.h:94: warning: and `
SAX::basic_Writer<std::string>::<anonymous enum>
SAX::basic_Writer<std::string>::lastTag_'
../../SAX/filter/Writer.h:43: warning: will be re-ordered to match declaration order
warning.
Ordinarily you'd expect to be able to use Xerces' Array janitor class. However,
Windows exes and dlls use seperate heaps, so you can't delete something in one
module that was allocated by another. It's a pita. The solution here is to useXMLString::release.
Although this simply does a delete[], the deletion occurs in the Xerces DLL, so
it will work correctly.
some implementations don't provide function bodies for the codecvt template
clase - I need to check spec on this
some implementations have an opaque definition of std::mbstate_t which means
it's actually exceeding difficult to use :)