Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 24193 invoked from network); 10 Oct 2007 17:41:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Oct 2007 17:41:11 -0000 Received: (qmail 8530 invoked by uid 500); 10 Oct 2007 17:15:10 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 8519 invoked by uid 500); 10 Oct 2007 17:15:10 -0000 Mailing-List: contact stdcxx-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-dev@incubator.apache.org Received: (qmail 8506 invoked by uid 99); 10 Oct 2007 17:15:10 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Oct 2007 10:15:10 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Oct 2007 17:15:10 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id B51B2714236 for ; Wed, 10 Oct 2007 10:14:50 -0700 (PDT) Message-ID: <6556835.1192036490739.JavaMail.jira@brutus> Date: Wed, 10 Oct 2007 10:14:50 -0700 (PDT) From: "Farid Zaripov (JIRA)" To: stdcxx-dev@incubator.apache.org Subject: [jira] Commented: (STDCXX-500) 1 + std::deque::iterator ambiguous without debugging iterators In-Reply-To: <4764248.1185298411322.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/STDCXX-500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533802 ] Farid Zaripov commented on STDCXX-500: -------------------------------------- Could not reproduce this issue on MSVC8 and gcc 4.2.0/Linux. > 1 + std::deque::iterator ambiguous without debugging iterators > -------------------------------------------------------------- > > Key: STDCXX-500 > URL: https://issues.apache.org/jira/browse/STDCXX-500 > Project: C++ Standard Library > Issue Type: Bug > Components: 24. Iterators > Affects Versions: 4.1.3 > Environment: HP aCC 6.0 > Reporter: Martin Sebor > > Moved from Rogue Wave Bugzilla: http://bugzilla.cvo.roguewave.com/show_bug.cgi?id=1923 > -------- Original Message -------- > Subject: Re: FWD: Peren 6.4 and N + iterator & swap(deque, deque) > Date: Mon, 18 Apr 2005 18:12:41 -0700 (PDT) > From: Dennis Handly > To: dhandly@cup.hp.com, sebor@roguewave.com > CC: Boris.Gubenko@hp.com, mahesha@india.hp.com, sgganesh@india.hp.com > >From: Dennis Handly > >Or use deque directly: > template > inline typename deque<_TypeT, _Allocator>::iterator > operator+(typename deque<_TypeT, > _Allocator>::iterator::difference_type __n, > typename deque<_TypeT, _Allocator>::iterator __rhs) > { > return __rhs.operator+(__n); > } > This didn't work. I need to also have one for const_iterator. > And it seems the test is bad: > error #2349: no operator "+" matches these operands > operand types are: int + std::deque std::allocator>::const_iterator > 2+it04 > ^ > 24(9) says that "n denotes a value of difference type Distance". > So that this has to be "2L". Or better yet: > ...:iterator::difference_type(2) + it04 > Does this seem like something we can get Perennial to change? > Boris: > Do we know how those other STLs work? Do they have an extra int > overloading? > ------- Additional Comments From sebor@roguewave.com 2005-04-19 09:30:12 ---- > -------- Original Message -------- > Subject: Re: FWD: Peren 6.4 and N + iterator & swap(deque, deque) > Date: Tue, 19 Apr 2005 10:29:32 -0600 > From: Martin Sebor > To: Dennis Handly > CC: Boris.Gubenko@hp.com, mahesha@india.hp.com, sgganesh@india.hp.com > References: <200504190112.SAA17097@hpcll183.cup.hp.com> > Dennis Handly wrote: > >>From: Dennis Handly > >>Or use deque directly: > > > > template > > inline typename deque<_TypeT, _Allocator>::iterator > > operator+(typename deque<_TypeT, > _Allocator>::iterator::difference_type __n, > > typename deque<_TypeT, _Allocator>::iterator __rhs) > > { > > return __rhs.operator+(__n); > > } > > > > This didn't work. I need to also have one for const_iterator. > > > > And it seems the test is bad: > > error #2349: no operator "+" matches these operands > > operand types are: int + std::deque > std::allocator>::const_iterator > > 2+it04 > > ^ > > > > 24(9) says that "n denotes a value of difference type Distance". > Ah. That's because the type of 2 is int but deque iterator's > distance type (that the iterator's type depends on) is long. > Darn! Those templates, they always get you! I'll have to think > about this one some more. I created bug 1923 to remind me. > > > > So that this has to be "2L". Or better yet: > > ...:iterator::difference_type(2) + it04 > > > > Does this seem like something we can get Perennial to change? > Strictly speaking I think the test is incorrect. 24.1, p1 says > that n (used in Table 76) denotes a value of the difference type > Distance, but 2 is not. But as a matter of QoI any integer should > work. > Martin > ------- Additional Comments From sebor@roguewave.com 2005-04-19 09:31:08 ---- > Here's the test case: > $ cat t.cpp && aCC -AA -V -c t.cpp > #include > void foo (std::deque::const_iterator i) > { > i + 2; > 2 + i; > } > aCC: HP aC++/ANSI C B3910B A.06.00 [Aug 25 2004] > "t.cpp", line 6: error #2349: no operator "+" matches these operands > operand types are: int + std::deque std::allocator>::const_iterator > 2 + i; > ^ > 1 error detected in the compilation of "t.cpp". -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.