diff options
Diffstat (limited to 'Source/kwsys/kwsys_ios_sstream.h.in')
-rw-r--r-- | Source/kwsys/kwsys_ios_sstream.h.in | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/Source/kwsys/kwsys_ios_sstream.h.in b/Source/kwsys/kwsys_ios_sstream.h.in deleted file mode 100644 index 29d250c..0000000 --- a/Source/kwsys/kwsys_ios_sstream.h.in +++ /dev/null @@ -1,199 +0,0 @@ -/*============================================================================ - KWSys - Kitware System Library - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium - - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ -#ifndef @KWSYS_NAMESPACE@_ios_sstream -#define @KWSYS_NAMESPACE@_ios_sstream - -#include <@KWSYS_NAMESPACE@/Configure.hxx> - -/* Define this macro temporarily to keep the code readable. */ -#if !defined (KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS -# define kwsys_stl @KWSYS_NAMESPACE@_stl -#endif - -#if @KWSYS_NAMESPACE@_IOS_USE_SSTREAM -# ifdef _MSC_VER -# pragma warning (push, 1) -# pragma warning (disable: 4702) -# endif -# include <sstream> -# ifdef _MSC_VER -# pragma warning(pop) -# endif -#else -# ifdef _MSC_VER -# pragma warning (push, 1) -# pragma warning (disable: 4702) -# pragma warning (disable: 4995) /* Old streams are deprecated. */ -# endif -# if @KWSYS_NAMESPACE@_IOS_USE_ANSI -# include <strstream> -# elif @KWSYS_NAMESPACE@_IOS_USE_STRSTREAM_H -# include <strstream.h> -# elif @KWSYS_NAMESPACE@_IOS_USE_STRSTREA_H -# include <strstrea.h> -# endif -# if @KWSYS_NAMESPACE@_IOS_USE_ANSI -# include <new> // Need placement operator new. -# else -# include <new.h> // Need placement operator new. -# endif -# ifdef _MSC_VER -# pragma warning(pop) -# endif - -// Only have old std strstream classes. Wrap them to look like new -// ostringstream and istringstream classes. - -# include <@KWSYS_NAMESPACE@/stl/string> - -namespace @KWSYS_NAMESPACE@_ios -{ -using @KWSYS_NAMESPACE@_ios_namespace::streambuf; -using @KWSYS_NAMESPACE@_ios_namespace::ostream; -using @KWSYS_NAMESPACE@_ios_namespace::istream; -using @KWSYS_NAMESPACE@_ios_namespace::strstream; -using @KWSYS_NAMESPACE@_ios_namespace::istrstream; -using @KWSYS_NAMESPACE@_ios_namespace::ostrstream; -using @KWSYS_NAMESPACE@_ios_namespace::ios; -using @KWSYS_NAMESPACE@_ios_namespace::endl; -using @KWSYS_NAMESPACE@_ios_namespace::ends; -using @KWSYS_NAMESPACE@_ios_namespace::flush; - -class stringstream_cleanup -{ -public: - stringstream_cleanup(strstream& str): m_StrStream(str) {} - ~stringstream_cleanup() { m_StrStream.rdbuf()->freeze(0); } - static void IgnoreUnusedVariable(const stringstream_cleanup&) {} -protected: - strstream& m_StrStream; -private: - void operator=(stringstream_cleanup const&); -}; - -class stringstream: public strstream -{ -public: - typedef strstream Superclass; - stringstream() {} - stringstream(const kwsys_stl::string& s) { *this << s.c_str(); } - kwsys_stl::string str() - { - stringstream_cleanup cleanup(*this); - stringstream_cleanup::IgnoreUnusedVariable(cleanup); -// Visual Studio 6 has a strstream::pcount, but this is not rdbuf()->pcount() -#if (@KWSYS_NAMESPACE@_IOS_USE_STRSTREA_H) && defined(_MSC_VER) && (_MSC_VER == 1200) - int count = this->pcount(); -#elif defined(__WATCOMC__) - int count = this->rdbuf()->out_waiting(); -#else - int count = this->rdbuf()->pcount(); -#endif - const char* ptr = this->Superclass::str(); - return kwsys_stl::string(ptr?ptr:"", count); - } - void str(const kwsys_stl::string& s) - { - this->~stringstream(); - new (this) stringstream(s); - } -private: - stringstream(const stringstream&); - void operator=(const stringstream&); -}; - -class ostringstream_cleanup -{ -public: - ostringstream_cleanup(ostrstream& ostr): m_OStrStream(ostr) {} - ~ostringstream_cleanup() { m_OStrStream.rdbuf()->freeze(0); } - static void IgnoreUnusedVariable(const ostringstream_cleanup&) {} -protected: - ostrstream& m_OStrStream; -private: - void operator=(ostringstream_cleanup const&); -}; - -class ostringstream: public ostrstream -{ -public: - typedef ostrstream Superclass; - ostringstream() {} - ostringstream(const kwsys_stl::string& s) { *this << s.c_str(); } - kwsys_stl::string str() - { - ostringstream_cleanup cleanup(*this); - ostringstream_cleanup::IgnoreUnusedVariable(cleanup); - int count = this->pcount(); - const char* ptr = this->Superclass::str(); - return kwsys_stl::string(ptr?ptr:"", count); - } - void str(const kwsys_stl::string& s) - { - this->~ostringstream(); - new (this) ostringstream(s); - } -private: - ostringstream(const ostringstream&); - void operator=(const ostringstream&); -}; - -#if defined(_MSC_VER) -# pragma warning (push) -# pragma warning (disable: 4097) /* typedef-name used as synonym for class */ -#endif -#if defined(__WATCOMC__) -// W728: class modifiers for 'A' conflict with class modifiers for 'B' -# pragma warning 728 10 -#endif - -class istringstream: private kwsys_stl::string, public istrstream -{ -public: - typedef kwsys_stl::string StdString; - typedef istrstream IStrStream; - istringstream(): StdString(), - IStrStream(const_cast<char*>(StdString::c_str())) {} - istringstream(const kwsys_stl::string& s): - StdString(s), IStrStream(const_cast<char*>(StdString::c_str())) {} - kwsys_stl::string str() const { return *this; } - void str(const kwsys_stl::string& s) - { - this->~istringstream(); - new (this) istringstream(s); - } - void clear(int flags) - { - this->IStrStream::clear(flags); - } -private: - istringstream(const istringstream&); - void operator=(const istringstream&); -}; - -#if defined(__WATCOMC__) -# pragma warning 728 9 -#endif -#if defined(_MSC_VER) -# pragma warning (pop) -#endif - -} // namespace @KWSYS_NAMESPACE@_ios - -#endif - -/* Undefine temporary macro. */ -#if !defined (KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS -# undef kwsys_stl -#endif - -#endif |