summaryrefslogtreecommitdiffstats
path: root/Source/kwsys
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2006-12-13 13:52:35 (GMT)
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2006-12-13 13:52:35 (GMT)
commitcc73abf7e74edf0d6bc12bf6b2ba4e61837c2a73 (patch)
tree8249c4289c596edf155a3cb6d97d26c4cc948edc /Source/kwsys
parent7d1801beeea65394795bf4254e678bfc5d5631c2 (diff)
downloadCMake-cc73abf7e74edf0d6bc12bf6b2ba4e61837c2a73.zip
CMake-cc73abf7e74edf0d6bc12bf6b2ba4e61837c2a73.tar.gz
CMake-cc73abf7e74edf0d6bc12bf6b2ba4e61837c2a73.tar.bz2
ENH: provide stringstream too. FIX: warning shadow var
Diffstat (limited to 'Source/kwsys')
-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;
}