ErrorNames is not implemented by vector<string> but *char[]
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index fd9ef16..4956a05 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -476,13 +476,9 @@
     return false;

 }

 

-std::string XMLUtil::ToErrorName( const XMLError errorID )

+const char* XMLUtil::ToErrorName( const XMLError errorID )

 {

-#if __cplusplus  > 199711LL

     return ErrorNames[errorID];

-#else

-    return std::string("Use C++11 or higher to use this function");

-#endif

 }

 

 char* XMLDocument::Identify( char* p, XMLNode** node )

diff --git a/tinyxml2.h b/tinyxml2.h
index c254d15..6ef7493 100755
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -39,8 +39,6 @@
 #   include <cstdlib>

 #   include <cstring>

 #   include <cstdarg>

-#   include <vector>

-#   include <string>

 #endif

 

 /*

@@ -512,14 +510,12 @@
 };

 #undef FF

 

-#if __cplusplus > 199711LL

 #define FF(X) #X,

-const std::vector<std::string> ErrorNames = {

+static const char *ErrorNames[] = {

     FOR_EACH(FF)

     "OUT_OF_RANGE"

 };

 #undef FF

-#endif

 #undef FOR_EACH

 

 

@@ -601,7 +597,7 @@
     static bool ToDouble( const char* str, double* value );

     

     // converts XMLError to strings

-    static std::string ToErrorName( const XMLError errorID );

+    static const char* ToErrorName( const XMLError errorID );

 };

 

 

diff --git a/xmltest.cpp b/xmltest.cpp
index ef57f7e..477f271 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -1222,9 +1222,7 @@
 		XMLDocument doc;

 		XMLError error = doc.LoadFile( "resources/empty.xml" );

 		XMLTest( "Loading an empty file", XML_ERROR_EMPTY_DOCUMENT, error );

-#if __cplusplus > 199711LL

-		XMLTest( "Loading an empty file and ErrorName as string", "XML_ERROR_EMPTY_DOCUMENT", XMLUtil::ToErrorName(error).c_str() );

-#endif

+		XMLTest( "Loading an empty file and ErrorName as string", "XML_ERROR_EMPTY_DOCUMENT", XMLUtil::ToErrorName(error) );

 	}

 

 	{