OSDN Git Service

2001-12-18 Benjamin Kosnik <bkoz@redhat.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / docs / html / 17_intro / TODO
1 - exception specifications need to be reviewed for all parts of the
2 library support and utility areas, particularly <new>. 
3
4 - scoping/linking issues WRT to C structs need to be worked out. See
5 Nathan's commentary on cantrip, http://www.cantrip.org/cheaders.html
6
7 - triglyphs/ciso646: and, and_eq, bitand, bitor, compl, not, not_eq,
8 or, or_eq, xor, xor_eq, true && 45, true and false, true or 45, etc.
9 (bool and int), etc.
10
11 - operator!= and utility/rel_ops operators need to be made safe with
12 string and vector iterator classes. basic_string::reverse_iterator may
13 be implemented incorrectly, or need things like
14 operator==(__normal_iterator, const char*&), and swap(vector)
15
16 - auto_ptr: seems to be some disagreement on what is
17 standards-conformant behavior, specially on conversion operators.
18
19 - header optimizations to keep compile times reasonable are most
20 certainly detracting from full conformance, as many templatized
21 definitions are squired away and pre-instantiated, so that the
22 compiler doesn't have to parse them. Areas effected: valarray, string,
23 all of iostreams and locales.
24
25 - C-related issues WRT to libio and filepos, mbstate_t. Need to
26 straighten this stuff out with the glibc-2.2 libio. Also may need to
27 define operators for mbstate_t so that 'mbstate_t& == mbstate_t' is
28 something that can be done.
29
30 - looks like deque::get_allocator not standards conformant or deque
31 allocator non-standard.
32
33 - list::assignment operator needs const_cast
34
35 - a cleaner division between pointers-to-value_type and true iterators
36 needs to be drawn throughout the entire STL implementation.
37
38 - priority_queue conversions may be non-conformant
39
40 - 'do the right thing' ctor fixing needs to be done for string. This
41 is still subject to some debate on the library issues list, so I
42 suggest punting till the dust clears.
43
44 - complex<float> seems to be the single largest source of internal
45 compiler errors when compiling the c++ library across non-x86
46 platforms. Somebody needs to make sure the complex support builtin to
47 gcc is actually working. Just as a "for-instance" these things give ICEs:
48 class complex<float>& complex<float>::operator-=<float>(const complex<float> &)
49 class complex<float>& complex<float>::operator/=<float>(const complex<float> &)
50 class complex<float>& complex<float>::operator+=<float>(const complex<float> &)
51 class complex<float>& complex<float>::operator-=<float>(const complex<float> &)
52 class complex<float>& complex<float>::operator*=<float>(const complex<float> &)
53
54 - Protect valarray::result_type (not Standard) and make it work with
55   the various helper classes.
56
57 - Make sure `valarray<bool> & == _Expr<_BinClos<logical_or,_ValArray,_ValArray,double,double>,bool>' 
58   is defined
59
60 - known issues WRT to io and corner cases with the buffers. This is
61 still subject to interpretation, and I think the current
62 implementation is credible.
63
64 - All of the Library working group closed issues need to be
65 addressed. Some of them proposed resolutions are already in the v-3
66 sources, with macro-guards.
67
68 - add deprecated features from Annex D
69   - add #ifdef wrappers for all of them, including in each
70     C <xxx.h> header
71   - replace typedef'd non-deprecated types with more type-safe equivalents.
72
73 - add optimization hooks (esp. whitespace eating) to streambuf
74   - add _M_begin() and _M_end() to streambuf
75   - add algorithm specializations for [io]streambuf_iterator (copy find etc.)
76
77 - fix template members of basic_string<> to overload iterators and
78   non-iterators properly.  (This is the infamous hack as in vector<> etc
79   23.1.1 para 10.)
80
81 - write filebuf for wide characters
82
83 - add feature-test macros for non-standard extensions
84
85 - move major extensions into separate namespace (e.g. stl::)
86
87 - create MT abstraction layer
88
89 - add MT support for locale, string, istream, ostream
90
91 - provide testsuites for numerics.
92
93 - add FAQ entries -- improve the install instructions
94
95 - add HOWTO entries