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.