Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 48812 invoked from network); 10 Dec 2007 07:01:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Dec 2007 07:01:34 -0000 Received: (qmail 9718 invoked by uid 500); 10 Dec 2007 07:01:22 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 9660 invoked by uid 500); 10 Dec 2007 07:01:22 -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 9649 invoked by uid 99); 10 Dec 2007 07:01:22 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 09 Dec 2007 23:01:22 -0800 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; Mon, 10 Dec 2007 07:01:20 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 37BEE714261 for ; Sun, 9 Dec 2007 23:00:58 -0800 (PST) Message-ID: <16924539.1197270058225.JavaMail.jira@brutus> Date: Sun, 9 Dec 2007 23:00:58 -0800 (PST) From: "Martin Sebor (JIRA)" To: stdcxx-dev@incubator.apache.org Subject: [jira] Updated: (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:all-tabpanel ] Martin Sebor updated STDCXX-500: -------------------------------- Severity: Compiler Error Affects Version/s: 4.2.0 Fix Version/s: 4.2.1 Added 4.2.0 to Affected Versions, scheduled for 4.2.1 and assigned to Travis. > 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 > Fix For: 4.2.1 > > > 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.