I'm not sure why GCC had a problem with this one, but
the fix is easy.
GCC complained that it didn't know how to stream the
literal string "[DATA]\n[/DATA]\n" to a std::ostream.
This was fixed by simply casting this C literal into
a std::string. <shrug> This is a weird one. There's
probably a header file that needs to be included, but
isn't.
To fix:
Find
p_stream << "[DATA]\n[/DATA]\n";
and replace with
p_stream << std::string("[DATA]\n[/DATA]\n");