C++ Standard Library Issues List (Revision 17)

Table of Contents

Reference ISO/IEC IS 14882:1998(E)

This document is the Table of Contents for the Library Active Issues List, Library Defect Report List, and Library Closed Issues List.

Also see:

Table of Contents

IssueTitleSectionStatus
1C library linkage editing oversight17.4.2.2DR
2Auto_ptr conversions effects incorrect20.4.5.3NAD
3Atexit registration during atexit() call is not described18.3DR
4Basic_string size_type and difference_type should be implementation defined21.3NAD
5String::compare specification questionable21.3.6.8DR
6File position not an offset unimplementable27.4.3NAD
7String clause minor problems21DR
8Locale::global lacks guarantee22.1.1.5DR
9Operator new(0) calls should not yield the same pointer18.4.1DR
10Codecvt<>::do unclear22.2.1.5.2Dup
11Bitset minor problems23.3.5DR
12Way objects hold allocators unclear20.1.5NAD
13Eos refuses to die27.6.1.2.3DR
14Locale::combine should be const22.1.1.3DR
15Locale::name requirement inconsistent22.1.1.3DR
16Bad ctype_byname<char> decl22.2.1.4DR
17Bad bool parsing22.2.2.1.2DR
18Get(...bool&) omitted22.2.2.1.1DR
19"Noconv" definition too vague22.2.1.5.2DR
20Thousands_sep returns wrong type22.2.3.1.2DR
21Codecvt_byname<> instantiations22.1.1.1.1DR
22Member open vs. flags27.8.1.7DR
23Num_get overflow result22.2.2.1.2Open
24"do_convert" doesn't exist22.2.1.5.2DR
25String operator<< uses width() value wrong21.3.7.9DR
26Bad sentry example27.6.1.1.2DR
27String::erase(range) yields wrong iterator21.3.5.5DR
28Ctype<char>is ambiguous22.2.1.3.2DR
29Ios_base::init doesn't exist27.3.1DR
30Wrong header for LC_*22.1.1.1.1DR
31Immutable locale values22.1.1DR
32Pbackfail description inconsistent27.5.2.4.4DR
33Codecvt<> mentions from_type22.2.1.5.2DR
34True/falsename() not in ctype<>22.2.2.2.2DR
35No manipulator unitbuf in synopsis27.4DR
36Iword & pword storage lifetime omitted27.4.2.5DR
37Leftover "global" reference22.1.1DR
38Facet definition incomplete22.1.2DR
39istreambuf_iterator<>::operator++(int) definition garbled24.5.3.4DR
40Meaningless normative paragraph in examples22.2.8DR
41Ios_base needs clear(), exceptions()27.4.2DR
42String ctors specify wrong default allocator21.3DR
43Locale table correction22.2.1.5.2Dup
44Iostreams use operator== on int_type values27Open
45Stringstreams read/write pointers initial position unclear27.7.3NAD
46Minor Annex D errorsD.7DR
47Imbue() and getloc() Returns clauses swapped27.4.2.3DR
48Use of non-existent exception constructor27.4.2.1.1DR
49Underspecification of ios_base::sync_with_stdio27.4.2.4Review
50Copy constructor and assignment operator of ios_base27.4.2DR
51Requirement to not invalidate iterators missing23.1DR
52Small I/O problems27.4.3.2DR
53Basic_ios destructor unspecified27.4.4.1DR
54Basic_streambuf's destructor27.5.2.1DR
55Invalid stream position is undefined27DR
56Showmanyc's return type27.5.2DR
57Mistake in char_traits21.1.3.2DR
58Extracting a char from a wide-oriented stream27.6.1.2.3NAD
59Ambiguity in specification of gbump27.5.2.3.1DR
60What is a formatted input function?27.6.1.2.1DR
61Ambiguity in iostreams exception policy27.6.1.3DR
62Sync's return value27.6.1.3DR
63Exception-handling policy for unformatted output27.6.2.6DR
64Exception handling in basic_istream::operator>>(basic_streambuf*)27.6.1.2.3DR
65Underspecification of strstreambuf::seekoffD.7.1.3NAD
66Strstreambuf::setbufD.7.1.3DR
67Setw useless for strings21.3.7.9Dup
68Extractors for char* should store null at end27.6.1.2.3DR
69Must elements of a vector be contiguous?23.2.4DR
70Uncaught_exception() missing throw() specification18.6DR
71Do_get_monthname synopsis missing argument22.2.5.1DR
72Do_convert phantom member function22.2.1.5Dup
73is_open should be const27.8.1NAD
74Garbled text for codecvt::do_max_length22.2.1.5.2DR
75Contradiction in codecvt::length's argument types22.2.1.5DR
76Can a codecvt facet always convert one internal character at a time?22.2.1.5Open
77Valarray operator[] const returning value26.3.2.3NAD
78Typo: event_call_back27.4.2DR
79Inconsistent declaration of polar()26.2.1DR
80Global Operators of complex declared twice26.2.1DR
81Wrong declaration of slice operations26.3.5NAD
82Missing constant for set elements23.1.2NAD
83String::npos vs. string::max_size()21.3DR
84Ambiguity with string::insert()21.3.5NAD
85String char types21NAD
86String constructors don't describe exceptions21.3.1DR
87Error in description of string::compare()21.3.6.8Dup
88Inconsistency between string::insert() and string::append()21.3.5.4NAD
89Missing throw specification for string::insert() and string::replace()21.3.5.4Dup
90Incorrect description of operator >> for strings21.3.7.9DR
91Description of operator>> and getline() for string<> might cause endless loop21.3.7.9Review
92Incomplete Algorithm Requirements25Open
93Incomplete Valarray Subset Definitions26.3NAD
94May library implementors add template parameters to Standard Library classes?17.4.4NAD
95Members added by the implementation17.4.4.4NAD
96Vector<bool> is not a container23.2.5Open
97Insert inconsistent definition23NAD
98Input iterator requirements are badly written24.1.1Open
99Reverse_iterator comparisons completely wrong24.4.1.3.13NAD
100Insert iterators/ostream_iterators overconstrained24.4.2NAD
101No way to free storage for vector and deque23.2.4NAD
102Bug in insert range in associative containers23.1.2Dup
103set::iterator is required to be modifiable, but this allows modification of keys23.1.2Ready
104Description of basic_string::operator[] is unclear21.3.4NAD
105fstream ctors argument types desired27.8NAD
106Numeric library private members are implementation defined26.3.5DR
107Valarray constructor is strange26.3.2NAD
108Lifetime of exception::what() return unspecified18.6.1DR
109Missing binders for non-const sequence elements20.3.6Open
110istreambuf_iterator::equal not const24.5.3DR
111istreambuf_iterator::equal overspecified, inefficient24.5.3.5Open
112Minor typo in ostreambuf_iterator constructor24.5.4.1DR
113Missing/extra iostream sync semantics27.6.1.1NAD
114Placement forms example in error twice18.4.1.3DR
115Typo in strstream constructorsD.7.4.1DR
116bitset cannot be constructed with a const char*23.3.5NAD
117basic_ostream uses nonexistent num_put member functions27.6.2.5.2Review
118basic_istream uses nonexistent num_get member functions27.6.1.2.2Ready
119Should virtual functions be allowed to strengthen the exception specification?17.4.4.8DR
120Can an implementor add specializations?17.4.3.1Open
121Detailed definition for ctype<wchar_t> specialization22.1.1.1.1NAD
122streambuf/wstreambuf description should not say they are specializations27.5.2DR
123Should valarray helper arrays fill functions be const?26.3.5.4Open
124ctype_byname<charT>::do_scan_is & do_scan_not return type should be const charT*22.2.1.2DR
125valarray<T>::operator!() return type is inconsistent26.3.2DR
126typos in Effects clause of ctype::do_narrow()22.2.1.1.2DR
127auto_ptr<> conversion issues20.4.5DR
128Need open_mode() function for file stream, string streams, file buffers, and string  buffers27.7NAD
129Need error indication from seekp() and seekg()27.6.1.3DR
130Return type of container::erase(iterator) differs for associative containers23.1.2NAD
131list::splice throws nothing23.2.2.4NAD
132list::resize description uses random access iterators23.2.2.2DR
133map missing get_allocator()23.3.1DR
134vector constructors over specified23.2.4.1DR
135basic_iostream doubly initialized27.6.1.5.1NAD
136seekp, seekg setting wrong streams?27.6.1.3Ready
137Do use_facet and has_facet look in the global locale?22.1.1DR
138Class ctype_byname<char> redundant and misleading22.2.1.4NAD
139Optional sequence operation table description unclear23.1.1DR
140map<Key, T>::value_type does not satisfy the assignable requirement23.3.1NAD
141basic_string::find_last_of, find_last_not_of say pos instead of xpos21.3.6.4DR
142lexicographical_compare complexity wrong25.3.8DR
143C .h header wording unclearD.5NAD
144Deque constructor complexity wrong 23.2.1.1DR
145adjustfield lacks default value27.4.4.1NAD
146complex<T> Inserter and Extractor need sentries26.2.6DR
147Library Intro refers to global functions that aren't global17.4.4.3DR
148Functions in the example facet BoolNames should be const22.2.8DR
149Insert should return iterator to first element inserted23.1.1NAD
150Find_first_of says integer instead of iterator 25.1.4DR
151Can't currently clear() empty container23.1.1DR
152Typo in scan_is() semantics22.2.1.1.2DR
153Typo in narrow() semantics22.2.1.3.2Ready
154Missing double specifier for do_get()22.2.2.1.2DR
155Typo in naming the class defining the class Init27.3DR
156Typo in imbue() description27.4.2.3DR
157Meaningless error handling for pword() and iword()27.4.2.5Dup
158Underspecified semantics for setbuf()27.5.2.4.2DR
159Strange use of underflow()27.5.2.4.3DR
160Typo: Use of non-existing function exception()27.6.1.1DR
161Typo: istream_iterator vs. istreambuf_iterator27.6.1.2.2DR
162Really "formatted input functions"?27.6.1.2.3Dup
163Return of gcount() after a call to gcount27.6.1.3Dup
164do_put() has apparently unused fill argument22.2.5.3.2DR
165xsputn(), pubsync() never called by basic_ostream members?27.6.2.1Ready
166Really "formatted output functions"?27.6.2.5.3Dup
167Improper use of traits_type::length()27.6.2.5.4Review
168Typo: formatted vs. unformatted27.6.2.6DR
169Bad efficiency of overflow() mandated27.7.1.3DR
170Inconsistent definition of traits_type27.7.4DR
171Strange seekpos() semantics due to joint position27.8.1.4Ready
172Inconsistent types for basic_istream::ignore()27.6.1.3DR
173Inconsistent types for basic_filebuf::setbuf()27.8.1.4DR
174Typo: OFF_T vs. POS_TD.6DR
175Ambiguity for basic_streambuf::pubseekpos() and a few other functions.D.6DR
176exceptions() in ios_base...?D.6DR
177Complex operators cannot be explicitly instantiated26.2.6NAD
178Should clog and cerr initially be tied to cout?27.3.1NAD
179Comparison of const_iterators to iterators doesn't work23.1Review
180Container member iterator arguments constness has unintended consequences23NAD
181make_pair() unintended behavior20.2.2DR
182Ambiguous references to size_t17Review
183I/O stream manipulators don't work for wide character streams27.6.3Ready
184numeric_limits<bool> wording problems18.2.1.5Ready
185Questionable use of term "inline"20.3Ready
186bitset::set() second parameter should be bool23.3.5.2Ready
187iter_swap underspecified25.2.2Open
188valarray helpers missing augmented assignment operators26.3.2.6NAD
189setprecision() not specified correctly27.4.2.2DR
190min() and max() functions should be std::binary_functions25.3.7NAD
191Unclear complexity for algorithms such as binary search25.3.3NAD
192a.insert(p,t) is inefficient and overconstrained23.1.2NAD
193Heap operations description incorrect25.3.6DR
194rdbuf() functions poorly specified27.4.4NAD
195Should basic_istream::sentry's constructor ever set eofbit?27.6.1.1.2DR
196Placement new example has alignment problems18.4.1.3Dup
197max_size() underspecified20.1.5Review
198Validity of pointers and references unspecified after iterator destruction24.1Review
199What does allocate(0) return?20.1.5DR
200Forward iterator requirements don't allow constant iterators24.1.3Open
201Numeric limits terminology wrong18.2.1Open
202unique() effects unclear when predicate not an equivalence relation25.2.8Open
203basic_istream::sentry::sentry() is uninstantiable with ctype<user-defined type>27.6.1.1.2NAD
204distance(first, last) when "last" is before "first"24.3.4NAD
205 numeric_limits unclear on how to determine floating point types18.2.1.2NAD
206operator new(size_t, nothrow) may become unlinked to ordinary operator new if ordinary version replaced18.4.1.1NAD
207ctype<char> members return clause incomplete22.2.1.3.2Dup
208Unnecessary restriction on past-the-end iterators24.1DR
209basic_string declarations inconsistent21.3DR
210distance first and last confused25DR
211operator>>(istream&, string&) doesn't set failbit21.3.7.9DR
212Empty range behavior unclear for several algorithms25.3.7DR
213Math function overloads ambiguous26.5NAD
214set::find() missing const overload23.3.3Ready
215Can a map's key_type be const?23.1.2NAD
216setbase manipulator description flawed27.6.3Dup
217Facets example (Classifying Japanese characters) contains errors22.2.8DR
218Algorithms do not use binary predicate objects for default comparisons25.3NAD
219find algorithm missing version that takes a binary predicate argument25.1.2NAD
220~ios_base() usage valid?27.4.2.7DR
221num_get<>::do_get stage 2 processing broken22.2.2.1.2Ready
222Are throw clauses necessary if a throw is already implied by the effects clause?17.3.1.3DR
223reverse algorithm should use iter_swap rather than swap25.2.9DR
224clear() complexity for associative containers refers to undefined N23.1.2DR
225std:: algorithms use of other unqualified algorithms17.4.4.3Open
226User supplied specializations or overloads of namespace std function templates17.4.3.1Open
227std::swap() should require CopyConstructible or DefaultConstructible arguments25.2.2DR
228Incorrect specification of "..._byname" facets22.2Review
229Unqualified references of other library entities17.4.1.1Open
230Assignable specified without also specifying CopyConstructible17Review
231Precision in iostream?22.2.2.2.2Open
232"depends" poorly defined in 17.4.3.117.4.3.1Review
233Insertion hints in associative containers23.1.2Open
234Typos in allocator definition20.4.1.1Ready
235No specification of default ctor for reverse_iterator24.4.1.1Review
236ctype<char>::is() member modifies facet22.2.1.3.2Dup
237Undefined expression in complexity specification23.2.2.1Ready
238Contradictory results of stringbuf initialization.27.7.1.1Review
239Complexity of unique() and/or unique_copy incorrect25.2.8Open
240Complexity of adjacent_find() is meaningless25.1.5Review
241Does unique_copy() require CopyConstructible and Assignable?25.2.8Review
242Side effects of function objects25.2.3Review
243get and getline when sentry reports failure27.6.1.3Ready
244Must find's third argument be CopyConstructible?25.1.2NAD
245Which operations on istream_iterator trigger input operations?24.5.1NAD
246a.insert(p,t) is incorrectly specified23.1.2Dup
247vector, deque::insert complexity23.2.4.3Open
248time_get fails to set eofbit22.2.5Ready
249Return Type of auto_ptr::operator=20.4.5NAD
250splicing invalidates iterators23.2.2.4Review
251basic_stringbuf missing allocator_type27.7.1Ready
252missing casts/C-style casts used in iostreams27.7Ready
253valarray helper functions are almost entirely useless26.3.2.1Open
254Exception types in clause 19 are constructed from std::string19.1Open
255Why do basic_streambuf<>::pbump() and gbump() take an int?27.5.2NAD
256typo in 27.4.4.2, p17: copy_event does not exist27.4.4.2Ready
257STL functional object and iterator inheritance.20.3.1NAD
258Missing allocator requirement20.1.5Open
259basic_string::operator[] and const correctness21.3.4Review
260Inconsistent return type of istream_iterator::operator++(int)24.5.1.2Ready
261Missing description of istream_iterator::operator!=24.5.1.2Ready
262Bitmask operator ~ specified incorrectly17.3.2.1.2Ready
263Severe restriction on basic_string reference counting21.3Ready
264Associative container insert(i, j) complexity requirements are not feasible.23.1.2Review
265std::pair::pair() effects overly restrictive20.2.2Ready
266bad_exception::~bad_exception() missing Effects clause18.6.2.1Review
267interaction of strstreambuf::overflow() and seekoff()D.7.1.3Review
268Typo in locale synopsis22.1.1Ready
269cstdarg and unnamed parameters18.7NAD
270Binary search requirements overly strict25.3.3Open
271basic_iostream missing typedefs27.6.1.5New
272Missing parentheses around subexpression27.4.4.3New
273Missing ios_base qualification on members of a dependent class27New
274a missing/impossible allocator requirement20.1.5New
275Wrong type in num_get::get() overloads22.2.2.1.1New
276Assignable requirement for container value type overly strict23.1New
277Normative encouragement in allocator requirements unclear20.1.5New
278What does iterator validity mean?23.2.2.4New
279const and non-const iterators should have equivalent typedefs23.1New
280Comparison of reverse_iterator to const reverse_iterator24.4.1New
281std::min() and max() requirements overly restrictive25.3.7New
282What types does numpunct grouping refer to?22.2.2.2.2New
283std::replace() requirement incorrect/insufficient25.2.4New
284unportable example in 20.3.7, p620.3.7New
285minor editorial errors in fstream ctors27.8.1.6New
286<cstdlib> requirements missing size_t typedef25.4New
287<cstdlib> conflicting ios_base fmtflags27.4.2.2New
288<cerrno> requirements missing macro EILSEQ19.3New
289<cmath> requirements missing C float and long double versions26.5New
290Requirements to for_each and its function object25.1.1New
291Underspecification of set algorithms25.3.5New
292effects of a.copyfmt (a)27.4.4.2New
293Order of execution in transform algorithm25.2.3New
294User defined macros and standard headers17.4.3.1.1New
295Is abs defined in <cmath>?26.5New
296Missing descriptions and requirements of pair operators20.2.2New
297const_mem_fun_t<>::argument_type should be const T*20.3.8New
298::operator delete[] requirement incorrect/insufficient18.4.1.2New
299Incorrect return types for iterator dereference24.1.4New
300list::merge() specification incomplete23.2.2.4New
301basic_string template ctor effects clause omits allocator argument21.3.1New
302Need error indication from codecvt<>::do_length22.2.1.5.2New
303Bitset input operator underspecified23.3.5.3New
304Must *a return an lvalue when a is an input iterator?24.1New
305Default behavior of codecvt<wchar_t, char, mbstate_t>::length()22.2.1.5.2New
306offsetof macro and non-POD types18.1New
307Lack of reference typedefs in container adaptors23.2.3New
308Table 82 mentions unrelated headers27New
309Does sentry catch exceptions?27.6New
310Is errno a macro?17.4.1.2New
311Incorrect wording in basic_ostream class synopsis27.6.2.1New

----- End of document -----