I found that rapidxml_print.hpp would not compile in current clang (llvm C compiler) svn 140288 with a number of complaints along the lines of:
call to function 'print_element_node' that is neither visible in the
template definition nor found by argument-dependent lookup
out = print_element_node(out, node, flags, indent);
'print_element_node' should be declared prior to the call site or in
inline OutIt print_element_node(OutIt out, const xml_node<Ch> ...
print_node() is referring to other methods that are not yet defined (they are defined immediately below). I solved this by moving the impl of print_node() down below its brethren print_children(), print_element_node() et al, and put a forward decl of print_node() at the top. My diff attached. The rev numbers in the diff are from my vcs.
Clang appears to be more picky about language rules than gcc, and I rather like that, FWIW.
Thank you for RapidXml.