Eric Lemings wrote:
-----Original Message-----
From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor
Sent: Monday, June 02, 2008 5:38 PM
To: dev@stdcxx.apache.org
Subject: Re: svn commit: r662518 - in /stdcxx/branches/4.2.x:
tests/containers/23.bitset.cpp
tests/containers/23.vector.cons.cpp tests/self/0.printf.cpp
tests/support/18.exception.cpp util/collate.cpp util/scanner.cpp
[EMAIL PROTECTED] wrote:
Author: elemings
Date: Mon Jun 2 11:59:24 2008
New Revision: 662518
URL: http://svn.apache.org/viewvc?rev=662518&view=rev
Log:
2008-06-02 Eric Lemings <[EMAIL PROTECTED]>
[...]
Modified: stdcxx/branches/4.2.x/tests/containers/23.vector.cons.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/tests/conta
iners/23.vector.cons.cpp?rev=662518&r1=662517&r2=662518&view=diff
==============================================================
================
---
stdcxx/branches/4.2.x/tests/containers/23.vector.cons.cpp (original)
+++
stdcxx/branches/4.2.x/tests/containers/23.vector.cons.cpp Mon
Jun 2 11:59:24 2008
@@ -618,7 +618,7 @@
for (typename Vector::size_type i = 0; i !=
rw_opt_nloops; ++i) {
// construct an element at then end of array
- alloc.construct (vals + i, i);
+ alloc.construct (vals + i, typename
Alloc::value_type (i));
For simplicity (and to avoid running into compiler bugs) I suggest
replacing the typename with:
alloc.construct (vals + i, T (i))
Yep, that would be somewhat better. Those two types are the same
I assume, right?
Yes. Strictly speaking, the template parameter T is redundant. It's
there to avoid having to spell it "typename Alloc::value_type" and
running into compiler bugs.
[...]
The reference to size_t should be qualified with std:: here. I was
about to recommend compiling with EDG eccp again to detect the absence
of the qualification but it appears that #including <sys/resource.h>
on Linux brings size_t into file scope so compiling with the front
end there doesn't reveal the problem. Ditto for Sun C++ on Solaris
whose C++ C headers are similarly strict.
Yeah, I used the rest of the file as a guide. Some files qualify it,
some don't. I just followed suit.
Here's the convention:
Tests, examples, and utilities (except for exec) should be using
the new C++ C headers and qualifying all names with std:: (unless
there's a documented reason not to). Those that don't ought to be
changed because the lack of the qualification is most likely a bug.
Library headers avoid #including any C library headers (with the
exception of rw/_traits.h) for namespace cleanliness.
Library sources (including rwtest) #include the deprecated .h
headers to bring in POSIX and other non-C++ and non-C symbols.
Martin