Return-Path: Delivered-To: apmail-stdcxx-issues-archive@locus.apache.org Received: (qmail 43073 invoked from network); 11 Mar 2008 22:30:33 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 11 Mar 2008 22:30:33 -0000 Received: (qmail 84030 invoked by uid 500); 11 Mar 2008 22:30:30 -0000 Delivered-To: apmail-stdcxx-issues-archive@stdcxx.apache.org Received: (qmail 84012 invoked by uid 500); 11 Mar 2008 22:30:30 -0000 Mailing-List: contact issues-help@stdcxx.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@stdcxx.apache.org Delivered-To: mailing list issues@stdcxx.apache.org Received: (qmail 84003 invoked by uid 99); 11 Mar 2008 22:30:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Mar 2008 15:30:30 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Mar 2008 22:29:39 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id EC1F4234C099 for ; Tue, 11 Mar 2008 15:28:50 -0700 (PDT) Message-ID: <1812869517.1205274530966.JavaMail.jira@brutus> Date: Tue, 11 Mar 2008 15:28:50 -0700 (PDT) From: "Martin Sebor (JIRA)" To: issues@stdcxx.apache.org Subject: [jira] Updated: (STDCXX-500) 1 + std::deque::iterator ambiguous without debugging iterators 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:all-tabpanel ] Martin Sebor updated STDCXX-500: -------------------------------- Priority: Minor (was: Major) Lowering Priority since it ??appears?? that our behavior is not in violation of the requirements of the current standard. If this is, in fact, confirmed I think the appropriate way to handle this issue will be to defer it until the standard is clarified. It's also not clear to me that the issue can be fixed in a backward-compatible manner. > 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, 4.2.0 > Environment: HP aCC 6.0 > Reporter: Martin Sebor > Assignee: Martin Sebor > Priority: Minor > Fix For: 4.2.1 > > Original Estimate: 8h > Remaining Estimate: 8h > > 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.