This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: C++: STL 3.2 (fwd)
- To: Joe Buck <jbuck at Synopsys dot COM>
- Subject: Re: C++: STL 3.2 (fwd)
- From: Gabriel Dos_Reis <Gabriel dot Dos_Reis at sophia dot inria dot fr>
- Date: 25 Apr 1999 14:13:37 +0200
- Cc: gdr at egcs dot cygnus dot com, egcs at egcs dot cygnus dot com, egcs-patches at egcs dot cygnus dot com
- Organization: I.N.R.I.A Sophia-Antipolis (France)
- References: <199904232341.QAA17019@atrus.synopsys.com>
Joe Buck <jbuck@Synopsys.COM> writes:
[...]
| > A week ago, I announced on the libstdc++-v3 mailing list that
| > <valarray> was nearly complete and just need testing. Right now, I got
| > _one_ reply. I'd suggest to incorporate it into egcs snasphots and
| > later move it into egcs-1.2.x. Thoughts?
|
| In cases where it can't break anything, I'm in favor of efforts to
| back-port stuff from libstdc++-v3 to v2.
Below is a back-port of valarray to v-2. Testing was conducted on
solaris-2.[56]: nothing seemed to be broken.
-- Gaby
Index: ChangeLog
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/libstdc++/ChangeLog,v
retrieving revision 1.66
diff -r1.66 ChangeLog
0a1,16
> 1999-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
>
> * libstdc++/std/slice.h: New file.
> * libstdc++/std/slice_array.h: Likewise.
> * libstdc++/std/gslice.h: Likewise.
> * libstdc++/std/gslice_array.h: Likewise.
> * libstdc++/std/indirect_array.h: Likewise.
> * libstdc++/std/mask_array.h: Likewise.
> * libstdc++/std/std_valarray.h: Likewise.
> * libstdc++/std/valarray_array.h: Likewise.
> * libstdc++/std/valarray_array.tcc: Likewise.
> * libstdc++/std/valarray_meta.h: Likewise.
> * libstdc++/valarray: Likewise.
>
> * libstdc++/Makefile.in: Handle valarray files.
>
Index: Makefile.in
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/libstdc++/Makefile.in,v
retrieving revision 1.27
diff -r1.27 Makefile.in
31c31
< vector fstream iomanip iostream strstream iosfwd bitset
---
> vector fstream iomanip iostream strstream iosfwd bitset valarray
272c272
< for FILE in *.h std/*.h std/*.cc; do \
---
> for FILE in *.h std/*.h std/*.cc std/*.tcc; do \
--qz860zxCt7
Content-Type: application/octet-stream
Content-Description: valarray files
Content-Disposition: attachment;
filename="valarray.tgz"
Content-Transfer-Encoding: base64
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
--qz860zxCt7--