Просмотр исходного кода

ErrorNames is not implemented by vector<string> but *char[]

numatrumpet 11 лет назад
Родитель
Сommit
003368429f
3 измененных файлов с 4 добавлено и 14 удалено
  1. 1 5
      tinyxml2.cpp
  2. 2 6
      tinyxml2.h
  3. 1 3
      xmltest.cpp

+ 1 - 5
tinyxml2.cpp

@@ -476,13 +476,9 @@ bool XMLUtil::ToDouble( const char* str, double* value )
     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 )

+ 2 - 6
tinyxml2.h

@@ -39,8 +39,6 @@ distribution.
 #   include <cstdlib>
 #   include <cstring>
 #   include <cstdarg>
-#   include <vector>
-#   include <string>
 #endif
 
 /*
@@ -512,14 +510,12 @@ enum XMLError {
 };
 #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 @@ public:
     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 );
 };
 
 

+ 1 - 3
xmltest.cpp

@@ -1222,9 +1222,7 @@ int main( int argc, const char ** argv )
 		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) );
 	}
 
 	{