summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/kwsys/kwsys_ios_sstream.h.in16
-rw-r--r--Source/kwsys/testIOS.cxx30
2 files changed, 43 insertions, 3 deletions
diff --git a/Source/kwsys/kwsys_ios_sstream.h.in b/Source/kwsys/kwsys_ios_sstream.h.in
index ccf9113..f63a60d 100644
--- a/Source/kwsys/kwsys_ios_sstream.h.in
+++ b/Source/kwsys/kwsys_ios_sstream.h.in
@@ -64,6 +64,7 @@ using @KWSYS_NAMESPACE@_ios_namespace::ostream;
using @KWSYS_NAMESPACE@_ios_namespace::istream;
using @KWSYS_NAMESPACE@_ios_namespace::istrstream;
using @KWSYS_NAMESPACE@_ios_namespace::ostrstream;
+using @KWSYS_NAMESPACE@_ios_namespace::strstream;
using @KWSYS_NAMESPACE@_ios_namespace::ios;
using @KWSYS_NAMESPACE@_ios_namespace::endl;
using @KWSYS_NAMESPACE@_ios_namespace::ends;
@@ -91,9 +92,9 @@ public:
{
ostringstream_cleanup cleanup(*this);
ostringstream_cleanup::IgnoreUnusedVariable(cleanup);
- int pcount = this->pcount();
+ int count = this->pcount();
const char* ptr = this->Superclass::str();
- return kwsys_stl::string(ptr?ptr:"", pcount);
+ return kwsys_stl::string(ptr?ptr:"", count);
}
void str(const kwsys_stl::string& s)
{
@@ -134,6 +135,17 @@ private:
# pragma warning (pop)
#endif
+class stringstream: public istringstream, public ostringstream
+{
+public:
+ stringstream():istringstream(),ostringstream() {}
+ kwsys_stl::string str() const { return istringstream::str(); }
+ kwsys_stl::string str() { return ostringstream::str(); }
+private:
+ stringstream(const stringstream&);
+ void operator=(const stringstream&);
+};
+
} // namespace @KWSYS_NAMESPACE@_ios
#endif
diff --git a/Source/kwsys/testIOS.cxx b/Source/kwsys/testIOS.cxx
index d699ae5..b2c7142 100644
--- a/Source/kwsys/testIOS.cxx
+++ b/Source/kwsys/testIOS.cxx
@@ -13,8 +13,36 @@
int main()
{
+ const char refstring[] = "Hello, World!";
kwsys_ios::ostringstream ostr;
- ostr << "Hello, World!";
+ ostr << refstring;
kwsys_ios::cout << ostr.str() << kwsys_ios::endl;
+ if( ostr.str() != refstring )
+ {
+ return 1;
+ }
+
+
+ kwsys_ios::istringstream istr;
+ istr.str( refstring );
+ kwsys_ios::cout << istr.str() << kwsys_ios::endl;
+ if( istr.str() != refstring )
+ {
+ return 1;
+ }
+
+
+ const int val = 12345;
+ const char valstr[] = "12345";
+ kwsys_ios::stringstream sstr;
+ sstr << val;
+ int v = 0;
+ sstr >> v;
+ if(v != val || sstr.str() != valstr)
+ {
+ return 1;
+ }
+ kwsys_ios::cout << sstr.str() << kwsys_ios::endl;
+
return 0;
}