ソースを参照

Try to use platform independent input string stream

Andy Cedilnik 23 年 前
コミット
089429fee9
2 ファイル変更20 行追加3 行削除
  1. 19 0
      Source/cmStandardIncludes.h
  2. 1 3
      Source/ctest.cxx

+ 19 - 0
Source/cmStandardIncludes.h

@@ -173,6 +173,15 @@ private:
   cmStringStream(const cmStringStream&);
   void operator=(const cmStringStream&);
 };
+class cmInputStringStream: public std::istringstream
+{
+public:
+  cmInputStringStream() {}
+  cmInputStringStream(const char* c) : std::istringstream(c) {}
+private:
+  cmInputStringStream(const cmInputStringStream&);
+  void operator=(const cmInputStringStream&);
+};
 #else
 class cmStrStreamCleanup
 {
@@ -201,6 +210,16 @@ private:
   cmStringStream(const cmStringStream&);
   void operator=(const cmStringStream&);
 };
+class cmInputStringStream: public std::istrstream
+{
+public:
+  typedef std::istrstream Superclass;
+  cmInputStringStream(const char* c) : Superclass(c) {}
+private:
+  cmInputStringStream(const cmInputStringStream&);
+  void operator=(const cmInputStringStream&);
+};
 #endif
 
+
 #endif

+ 1 - 3
Source/ctest.cxx

@@ -18,8 +18,6 @@
 #include "cmRegularExpression.h"
 #include "cmSystemTools.h"
 
-#include <strstream>
-
 #include <stdio.h>
 #include <time.h>
 
@@ -477,7 +475,7 @@ int ctest::BuildDirectory()
   // 1 - error
   // > 1 - warning
   std::vector<int>         markedLines;
-  std::istrstream istr(coutput);
+  cmInputStringStream istr(coutput);
   while(istr)
     {
     char buffer[1024];