ENH: provide stringstream too. FIX: warning shadow var

This commit is contained in:
Mathieu Malaterre 2006-12-13 08:52:35 -05:00
parent 7d1801beee
commit cc73abf7e7
2 changed files with 43 additions and 3 deletions

View File

@ -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

View File

@ -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;
}