[EMAIL PROTECTED] wrote:
Author: faridz
Date: Tue Mar 18 07:22:15 2008
New Revision: 638382

Just out of curiosity: are these warnings new in MSVC 9? (I don't
think they show up in MSVC 8 builds.)

Martin


URL: http://svn.apache.org/viewvc?rev=638382&view=rev
Log:
2008-03-18  Farid Zaripov  <[EMAIL PROTECTED]>

        STDCXX-648
        * include/fstream: Change 'class' keyword to 'struct' to hide MSVC 
warning C4099:
        'std::ios_base::Init' : type name first seen using 'struct' now seen 
using 'class'.
        * include/istream [_RWSTD_NO_EXT_NUM_GET] (__rw_extract(istream&, short 
&)):
        New overload, implemented thus__rw_extract<long>.
        [_RWSTD_NO_EXT_NUM_GET] (__rw_extract(istream&, int &)):
        New overload, implemented thus__rw_extract<long>.
        * src/podarray.h (_C_length): Use inplace algorithm instead of
        char_traits::length when _RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY macro is 
#defined.

Modified:
    stdcxx/trunk/include/fstream
    stdcxx/trunk/include/istream
    stdcxx/trunk/src/podarray.h

Modified: stdcxx/trunk/include/fstream
URL: 
http://svn.apache.org/viewvc/stdcxx/trunk/include/fstream?rev=638382&r1=638381&r2=638382&view=diff
==============================================================================
--- stdcxx/trunk/include/fstream (original)
+++ stdcxx/trunk/include/fstream Tue Mar 18 07:22:15 2008
@@ -121,7 +121,7 @@
 private:
// g++ 2.95 error: `std::ios_base::Init' does not declare a template type
-    friend class ios_base::Init;
+    friend struct ios_base::Init;
#endif // _RWSTD_NO_EXT_FILEBUF && !_RWSTD_NO_STATIC_IOSTREAM_INIT
Modified: stdcxx/trunk/include/istream
URL: 
http://svn.apache.org/viewvc/stdcxx/trunk/include/istream?rev=638382&r1=638381&r2=638382&view=diff
==============================================================================
--- stdcxx/trunk/include/istream (original)
+++ stdcxx/trunk/include/istream Tue Mar 18 07:22:15 2008
@@ -55,6 +55,45 @@
 _STD::basic_istream<_CharT, _Traits>&
 __rw_extract (_STD::basic_istream<_CharT, _Traits>&, _NativeType&);
+
+#ifdef _RWSTD_NO_EXT_NUM_GET
+
+template <class _CharT, class _Traits>
+inline _STD::basic_istream<_CharT, _Traits>&
+__rw_extract (_STD::basic_istream<_CharT, _Traits> &__strm,
+              short                                &__val)
+{
+    long __tmp = __val;
+    __rw_extract (__strm, __tmp);
+
+    _STD::ios_base::iostate __err = _STD::ios_base::goodbit;
+    __val = __rw_check_overflow_short (__tmp, __strm.flags (), __err);
+
+    if (_STD::ios_base::goodbit != __err)
+        __strm.setstate (__err);
+
+    return __strm;
+}
+
+template <class _CharT, class _Traits>
+inline _STD::basic_istream<_CharT, _Traits>&
+__rw_extract (_STD::basic_istream<_CharT, _Traits> &__strm,
+              int                                  &__val)
+{
+    long __tmp = __val;
+    __rw_extract (__strm, __tmp);
+
+    _STD::ios_base::iostate __err = _STD::ios_base::goodbit;
+    __val = __rw_check_overflow_int (__tmp, __strm.flags (), __err);
+
+    if (_STD::ios_base::goodbit != __err)
+        __strm.setstate (__err);
+
+    return __strm;
+}
+
+#endif   // _RWSTD_NO_EXT_NUM_GET
+
 }   // namespace __rw
Modified: stdcxx/trunk/src/podarray.h
URL: 
http://svn.apache.org/viewvc/stdcxx/trunk/src/podarray.h?rev=638382&r1=638381&r2=638382&view=diff
==============================================================================
--- stdcxx/trunk/src/podarray.h (original)
+++ stdcxx/trunk/src/podarray.h Tue Mar 18 07:22:15 2008
@@ -198,7 +198,13 @@
 private:
static _RWSTD_SIZE_T _C_length (const _TypeT *__a) {
+#ifndef _RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY
         return _STD::char_traits<_TypeT>::length (__a);
+#else    // #ifdef _RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY
+        _RWSTD_SIZE_T __len = 0;
+        for (; _TypeT () != *__a; ++__a, ++__len) ;
+        return __len;
+#endif   // _RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY
     }
 };



Reply via email to