[EMAIL PROTECTED] wrote:
Author: faridz
Date: Sat Mar 15 21:48:29 2008
New Revision: 637539
URL: http://svn.apache.org/viewvc?rev=637539view=rev
Log:
2008-03-16 Farid Zaripov [EMAIL PROTECTED]
STDCXX-635
* include/deque (operator-): If one of the iterators is the iterator
of the empty deque, return difference between _C_cur data members.
Modified:
stdcxx/trunk/include/deque
Modified: stdcxx/trunk/include/deque
URL:
http://svn.apache.org/viewvc/stdcxx/trunk/include/deque?rev=637539r1=637538r2=637539view=diff
==
--- stdcxx/trunk/include/deque (original)
+++ stdcxx/trunk/include/deque Sat Mar 15 21:48:29 2008
@@ -277,6 +277,13 @@
operator- (const _RWSTD_DEQUE_ITER(1) __x, const _RWSTD_DEQUE_ITER(2) __y)
{
// _RWSTD_ASSERT_RANGE (__x, __y);
+typedef _TYPENAME _RWSTD_DEQUE_ITER(1)::pointer pointer1;
+typedef _TYPENAME _RWSTD_DEQUE_ITER(2)::pointer pointer2;
The names pointer1 and pointer2 need to privatized (e.g., _Pointer1).
Martin
+
+if (pointer1 () == __x._C_cur || pointer2 () == __y._C_cur) {
+// __x and/or __y is end-iterator of the empty deque
+return _DiffT (__x._C_cur - __y._C_cur);
+}
const _DiffT __bufsize = _DiffT (__x._C_bufsize ());