diff options
Diffstat (limited to 'libstdc++-v3/docs/html/17_intro/TODO')
-rw-r--r-- | libstdc++-v3/docs/html/17_intro/TODO | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/libstdc++-v3/docs/html/17_intro/TODO b/libstdc++-v3/docs/html/17_intro/TODO new file mode 100644 index 00000000000..4da846277d6 --- /dev/null +++ b/libstdc++-v3/docs/html/17_intro/TODO @@ -0,0 +1,177 @@ +- exception specifications need to be reviewed for all parts of the +library support and utility areas, particularly <new>. + +- exception/stdexcept headers will do, but are not cleanly +implemented. Also, some kind of consensus needs to be established on +if the presence of stdexcept should be assumed in iostreams +headers. V3 currently takes the position that references to stdexcept +classes necessitates the inclusion of stdexcept, other library vendors +seem less inclined. + +- scoping/linking issues WRT to C structs need to be worked out. See +Nathan's commentary on cantrip, http://www.cantrip.org/cheaders.html + +- triglyphs/ciso646: and, and_eq, bitand, bitor, compl, not, not_eq, +or, or_eq, xor, xor_eq, true && 45, true and false, true or 45, etc. +(bool and int), etc. + +- operator!= and utility/rel_ops operators need to be made safe with +string and vector iterator classes. basic_string::reverse_iterator may +be implemented incorrectly, or need things like +operator==(__normal_iterator, const char*&), and swap(vector) + +- SGI iterator/allocator classes are not strictly conforming. In +particular, raw_storage_iterator, mem_fun1_ref_t are all problem +areas. + +- auto_ptr: seems to be some disagreement on what is +standards-conformant behavior, specially on conversion operators. + +- vswprintf, vwprintf, wprintf, wscanf, wcsftime, swscanf, fgetws, +fputwc, fputws, fwide, fwprintf, fwscanf, getwc, getwchar, putwc, etc: +C library wchar_t functionality. + +- facets heirarchies seem on occasion give odd errors to conformace +tests. Need to test that they are constructed in a strictly-conforming +manner. + +- stuff like `LC_CTYPE' is not found. Locale oddness? + +- header optimizations to keep compile times reasonable are most +certainly detracting from full conformance, as many templatized +definitions are squired away and pre-instantiated, so that the +compiler doesn't have to parse them. Areas effected: valarray, string, +all of iostreams and locales. + +- basic_string<wchar_T> not implemented + +- ostreambuf_iterator has not been made standards-conformant (both +char and wchar_t) In particular, look at +time_put::put(OutIt, ios_base&, char, const tm*, const char*, const +char*) const + +- C-related issues WRT to libio and filepos, mbstate_t. Need to +straighten this stuff out with the glibc-2.2 libio. Also may need to +define operators for mbstate_t so that 'mbstate_t& == mbstate_t' is +something that can be done. + +- codecvt<wchar_t> has not been adequently handled in terms of the +locale bits. (The io bits are done, with the exception of one +ostream<wchar_t> inserter for char. + +- bool locale::operator() looks to be non-conformant + +- num_get<char>::do_get<user_defined_type> + num_put<char>::do_put<user_defined_type> +num_put<char, char *>::do_put(char *, ios_base &, char, long double) const +num_put<char, char *>::do_put(char *, ios_base &, char, double) const +num_put<char, char *>::do_put(char *, ios_base &, char, void const *) const +etc. +appear to be broken, or headers mashed, or undefined. + +- locale and std::combine not working correctly + template <class _Facet> class locale locale::combine(const locale &) + +- ctype_byname<char>: check to make sure derivation standards-conformant. + +- codecvt::unshift not working for char, wchar_t + +- no match for money_base::pattern &[int] + +- money_get::do_get weirded out for wchar_t + +- looks like deque::get_allocator not standards conformant or deque +allocator non-standard. + +- list::assignment operator needs const_cast + +- a cleaner division between pointers-to-value_type and true iterators +needs to be drawn throughout the entire STL implementation. + +- priority_queue conversions may be non-conformant + +- istream_iterator uses 2 arguments, should it be 4? + +- 'do the right thing' ctor fixing needs to be done for string. This +is still subject to some debate on the library issues list, so I +suggest punting till the dust clears. + +- the ctype and "tolower" "isspace" stuff really needs to be sorted +out. A portable, cross platform interface needs to be defined. A +"fixincludes"-like solution needs to be put into place to prune +headers. The "C" functions need to be able to work in std:: and "C" +namespaces. + +- complex<float> seems to be the single largest source of internal +compiler errors when compiling the c++ library across non-x86 +platforms. Somebody needs to make sure the complex support builtin to +gcc is actually working. Just as a "for-instance" these things give ICEs: +class complex<float>& complex<float>::operator-=<float>(const complex<float> &) +class complex<float>& complex<float>::operator/=<float>(const complex<float> &) +class complex<float>& complex<float>::operator+=<float>(const complex<float> &) +class complex<float>& complex<float>::operator-=<float>(const complex<float> &) +class complex<float>& complex<float>::operator*=<float>(const complex<float> &) + +- appears as if the following extraction operators are undefined: +operator>>(istream, complex<float>&) +operator>>(istream, complex<double>&) +operator>>(istream, complex<long double>&) +operator>>(istream, complex<user_defined_type>&) +sqrt (const complex<T>& x) + +- Protect valarray::result_type (not Standard) and make it work with + the various helper classes. + +- Make sure `valarray<bool> & == _Expr<_BinClos<logical_or,_ValArray,_ValArray,double,double>,bool>' + is defined + +- long double std_cmath stuff looks weak + +- fwide not declared. C++ wchar_t issues completely unaddressed. + +- known issues WRT to io and corner cases with the buffers. This is +still subject to interpretation, and I think the current +implementation is credible. + +- All of the Library working group closed issues need to be +addressed. Some of them proposed resolutions are already in the v-3 +sources, with macro-guards. + +- add deprecated features from Annex D + - add #ifdef wrappers for all of them, including in each + C <xxx.h> header + - replace typedef'd non-deprecated types with more type-safe equivalents. + +- add optimization hooks (esp. whitespace eating) to streambuf + - add _M_begin() and _M_end() to streambuf + - add algorithm specializations for [io]streambuf_iterator (copy find etc.) + +- fix template members of basic_string<> to overload iterators and + non-iterators properly. (This is the infamous hack as in vector<> etc + 23.1.1 para 10.) + +- write filebuf for wide characters + +- replace stl/bits/stl_config + +- add feature-test macros for non-standard extensions + +- move major extensions into separate namespace (e.g. stl::) + +- create MT abstraction layer + +- add MT support for locale, string, istream, ostream + +- specialize functions that use_facet<> calls on failure for the required + facets, and construct them lazily so unused facets need not be constructed + when the locale is. + +- get mknumeric_limits coope with 'exotic' OSes. + +- <cmath>: provide missing names. + +- provide testsuites for numerics. + +- add FAQ entries -- improve the install instructions + +- add HOWTO entries |