And it compiles.
diff --git a/tinyxml2.h b/tinyxml2.h
index f831363..22d9d3e 100644
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -2,6 +2,8 @@
 #define TINYXML2_INCLUDED

 

 #include <limits.h>

+#include <ctype.h>

+#include <stdio.h>

 

 #if defined( _DEBUG ) || defined( DEBUG ) || defined (__DEBUG__)

 	#ifndef DEBUG

@@ -27,7 +29,7 @@
 

 namespace tinyxml2

 {

-class XMLDocument*;

+class XMLDocument;

 

 // internal - move to separate namespace

 struct CharBuffer

@@ -45,7 +47,8 @@
 	friend class XMLDocument;

 public:

 

-	static XMLNode* Identify( const char* p );

+	XMLNode* InsertEndChild( XMLNode* addThis );

+	void Print( FILE* cfile, int depth );			// prints leading spaces.

 

 protected:

 	XMLNode( XMLDocument* );

@@ -97,8 +100,13 @@
 	XMLComment( XMLDocument* doc );

 	virtual ~XMLComment();

 

+	void Print( FILE* cfile, int depth );

+

+protected:

+	char* ParseDeep( char* );

+

 private:

-	char* value;

+	const char* value;

 };

 

 

@@ -109,26 +117,20 @@
 	~XMLDocument();

 

 	bool Parse( const char* );

+	void Print( FILE* cfile=stdout, int depth=0 );

 

 	XMLNode* Root()				{ return root; }

 	XMLNode* RootElement();

 

-	XMLNode* InsertEndChild( XMLNode* addThis );

-

 private:

 	XMLDocument( const XMLDocument& );	// intentionally not implemented

-

-	virtual char* ParseDeep( char* );

+	char* Identify( char* p, XMLNode** node );

 

 	XMLNode*	root;

 	CharBuffer* charBuffer;

 };

 

 

-

-

-

-

 };	// tinyxml2