From 6117271629658787423
X-Google-Thread: f78e5,d1c6a5283ead339f,start
X-Google-Attributes: gidf78e5,public
X-Google-Language: ENGLISH,ASCII
Path: g2news1.google.com!news3.google.com!news.glorb.com!newsfeeds.ihug.co.nz!ihug.co.nz!news.compaq.com!newsfeed1.sea.pnap.net!newsfeed2.sea.pnap.net!newsfeed.pnap.net!brmea-news-1.sun.com!news1nwk.sfbay.sun.com!taumet!clamage
From: =?iso-8859-1?B?Sm9hcXXtbiBNIEzzcGV6IE118W96?= <joaquin@tid.es>
Newsgroups: comp.std.c++
Subject: Defect report: Container iterator constructor and explicit convertibility
Date: Sat, 17 Dec 2005 15:55:48 +0000 (UTC)
Organization: http://groups.google.com
Lines: 33
Sender: fjh@cs.mu.OZ.AU
Approved: stephen.clamage@sun.com (comp.std.c++)
Message-ID: <1134819053.870933.306820@g14g2000cwa.googlegroups.com>
NNTP-Posting-Host: taumet.sfbay.sun.com
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
X-Trace: news1nwk.SFbay.Sun.COM 1134834948 9797 129.146.86.208 (17 Dec 2005 15:55:48 GMT)
X-Complaints-To: usenet@news1nwk.sfbay.sun.com
NNTP-Posting-Date: Sat, 17 Dec 2005 15:55:48 +0000 (UTC)
X-Original-NNTP-posting-date: Sat, 17 Dec 2005 11:30:58 +0000 (UTC)
Delivered-to: std-c++@ucar.edu
Complaints-To: groups-abuse@google.com
User-Agent: G2/0.2
X-PMX-Version: 5.1.1.222179
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.7.10) Gecko/20050717 Firefox/1.0.6,gzip(gfe),gzip(gfe)
X-NNTP-posting-host: 83.41.2.143
Original-recipient: rfc822;stephen.clamage@sun.com
Originator: clamage@taumet
Xref: g2news1.google.com comp.std.c++:2816


[moderator: I posted on this subject yesterday, this is a reformulation
so that it's accepted as a valid DR submission]

[moderator's note: Forwarded to C++ Committee. -sdc]

The iterator constructor X(i,j) for containers as defined in 23.1.1 and
23.2.2 does only require that i and j be input iterators but
nothing is said about their associated value_type. There are three
sensible
options:

1. iterator's value_type is exactly X::value_type (modulo cv).
2. iterator's value_type is *implicitly* convertible to X::value_type.
3. iterator's value_type is *explicitly* convertible to X::value_type.

The issue has practical implications, and stdlib vendors have
taken divergent approaches to it: Dinkumware follows 2,
libstdc++ follows 3.

The same problem applies to the definition of insert(p,i,j) for
sequences and insert(i,j) for associative contianers, as well as
assign.

Joaqu�n M L�pez Mu�oz
Telef�nica, Investigaci�n y Desarrollo


[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]



