I am trying to include rapidxml into my current project. However, it would not build.
Visual Studio would complain about this piece of code (rapidxml.hpp:419+451):
419: void *memory = allocate_aligned(sizeof(xml_attribute<Ch>));
420: xml_attribute<Ch> *attribute = new(memory) xml_attribute<Ch>;
The compiler would say
rapidxml.hpp(420): error C2061: syntax error : identifier 'memory'
And I kind of see how this would confuse the compiler. It actually confuses me quite a bit, too. What is the (memory) part of new(memory) xml_attribute<Ch> doing there?
If I delete that (memory) part, it compiles just fine.
Also, gcc compiles it just fine with (memory) included.
Edit:
Oh, and I overloaded new with DEBUG_NEW to do some memory debugging. DEBUG_NEW does not support placement new.