You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by fa...@apache.org on 2008/08/21 15:46:11 UTC

svn commit: r687762 - /stdcxx/branches/4.2.x/include/rw/_specialized.h

Author: faridz
Date: Thu Aug 21 06:46:10 2008
New Revision: 687762

URL: http://svn.apache.org/viewvc?rev=687762&view=rev
Log:
2008-08-21  Farid Zaripov  <fa...@apache.com>

	STDCXX-976
	* include/rw/_specialized.h (uninitialized_copy) [!__HP_aCC]:
	Explicitly cast *__first into const reference to the
	iterator_traits<_InputIterator>::value_type type for accepting
	_InputIterator's with operator*() returning rvalue.

Modified:
    stdcxx/branches/4.2.x/include/rw/_specialized.h

Modified: stdcxx/branches/4.2.x/include/rw/_specialized.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/rw/_specialized.h?rev=687762&r1=687761&r2=687762&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/include/rw/_specialized.h (original)
+++ stdcxx/branches/4.2.x/include/rw/_specialized.h Thu Aug 21 06:46:10 2008
@@ -52,6 +52,11 @@
 #endif   // _RWSTD_RW_NEW_H_INCLUDED
 
 
+#ifndef _RWSTD_RW_ITERBASE_H_INCLUDED
+#  include <rw/_iterbase.h>
+#endif   // _RWSTD_RW_ITERBASE_H_INCLUDED
+
+
 _RWSTD_NAMESPACE (__rw) { 
 
 
@@ -162,10 +167,16 @@
                     _ForwardIterator __res)
 {
     const _ForwardIterator __start = __res;
+    typedef const _TYPENAME iterator_traits<_InputIterator>::value_type& _RefT;
 
     _TRY {
         for (; __first != __last; ++__first, ++__res)
+#ifndef __HP_aCC
+            _RW::__rw_construct (&*__res, _RefT (*__first));
+#else    // ifdef __HP_aCC
+            // Don't cast to _RefT on HP aCC due to ICE (see STDCXX-1005)
             _RW::__rw_construct (&*__res, *__first);
+#endif   // __HP_aCC
     }
     _CATCH (...) {
         _RW::__rw_destroy (__start, __res);