]> git.saurik.com Git - wxWidgets.git/commitdiff
VC6 compilation fixes
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 3 May 2009 09:29:22 +0000 (09:29 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 3 May 2009 09:29:22 +0000 (09:29 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/stdstream.cpp

index af8475cdd3b331b37edd2966c7c61859f17e8a45..1fa00576423bbbd3a33da5758c3ee0e099cf9ea4 100644 (file)
@@ -183,16 +183,6 @@ wxStdInputStreamBuffer::pbackfail(int c)
     return m_stream.Ungetch((char) c) ? c : EOF;
 }
 
     return m_stream.Ungetch((char) c) ? c : EOF;
 }
 
-// ==========================================================================
-// wxStdInputStream
-// ==========================================================================
-
-wxStdInputStream::wxStdInputStream(wxInputStream& stream) :
-    std::istream(NULL), m_streamBuffer(stream)
-{
-    std::ios::init(&m_streamBuffer);
-}
-
 // ==========================================================================
 // wxStdOutputStreamBuffer
 // ==========================================================================
 // ==========================================================================
 // wxStdOutputStreamBuffer
 // ==========================================================================
@@ -260,13 +250,44 @@ wxStdOutputStreamBuffer::overflow(int c)
 }
 
 // ==========================================================================
 }
 
 // ==========================================================================
-// wxStdOutputStream
+// wxStdInputStream and wxStdOutputStream
 // ==========================================================================
 
 // ==========================================================================
 
+// FIXME-VC6: it is impossible to call basic_ios<char>::init() with this
+//            compiler, it complains about invalid call to non-static member
+//            function so use a suspicious (as it uses a pointer to not yet
+//            constructed streambuf) but working workaround
+//
+//            It also doesn't like using istream in the ctor initializer list
+//            and we must spell it out as basic_istream<char>.
+#ifdef __VISUALC6__
+
+wxStdInputStream::wxStdInputStream(wxInputStream& stream)
+    : std::basic_istream<char, std::char_traits<char> >(&m_streamBuffer),
+      m_streamBuffer(stream)
+{
+}
+
+wxStdOutputStream::wxStdOutputStream(wxOutputStream& stream)
+    : std::basic_ostream<char, std::char_traits<char> >(&m_streamBuffer),
+      m_streamBuffer(stream)
+{
+}
+
+#else // !VC6
+
+wxStdInputStream::wxStdInputStream(wxInputStream& stream) :
+    std::istream(NULL), m_streamBuffer(stream)
+{
+    std::ios::init(&m_streamBuffer);
+}
+
 wxStdOutputStream::wxStdOutputStream(wxOutputStream& stream) :
     std::ostream(NULL), m_streamBuffer(stream)
 {
     std::ios::init(&m_streamBuffer);
 }
 
 wxStdOutputStream::wxStdOutputStream(wxOutputStream& stream) :
     std::ostream(NULL), m_streamBuffer(stream)
 {
     std::ios::init(&m_streamBuffer);
 }
 
+#endif // VC6/!VC6
+
 #endif // wxUSE_STD_IOSTREAM
 #endif // wxUSE_STD_IOSTREAM