Joaquín M López Muñoz Guest
|
Posted: Sat Dec 17, 2005 3:55 pm Post subject: Defect report: Container iterator constructor and explicit c |
|
|
[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 ]
|
|