From cc73abf7e74edf0d6bc12bf6b2ba4e61837c2a73 Mon Sep 17 00:00:00 2001 From: Mathieu Malaterre Date: Wed, 13 Dec 2006 08:52:35 -0500 Subject: ENH: provide stringstream too. FIX: warning shadow var --- Source/kwsys/kwsys_ios_sstream.h.in | 16 ++++++++++++++-- Source/kwsys/testIOS.cxx | 30 +++++++++++++++++++++++++++++- 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; } -- cgit v0.12