C++ Standard Library Issues List (Revision 18)

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.4Ready
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.5Review
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.2DR
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.6Ready
110istreambuf_iterator::equal not const24.5.3DR
111istreambuf_iterator::equal overspecified, inefficient24.5.3.5NAD
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.2Ready
118basic_istream uses nonexistent num_get member functions27.6.1.2.2DR
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.3DR
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.2DR
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.1DR
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.4DR
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_t17Ready
183I/O stream manipulators don't work for wide character streams27.6.3DR
184numeric_limits<bool> wording problems18.2.1.5DR
185Questionable use of term "inline"20.3DR
186bitset::set() second parameter should be bool23.3.5.2DR
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.5Open
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.3DR
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.2DR
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.2Ready
229Unqualified references of other library entities17.4.1.1Open
230Assignable specified without also specifying CopyConstructible17Ready
231Precision in iostream?22.2.2.2.2Review
232"depends" poorly defined in 17.4.3.117.4.3.1Ready
233Insertion hints in associative containers23.1.2Review
234Typos in allocator definition20.4.1.1DR
235No specification of default ctor for reverse_iterator24.4.1.1Ready
236ctype<char>::is() member modifies facet22.2.1.3.2Dup
237Undefined expression in complexity specification23.2.2.1DR
238Contradictory results of stringbuf initialization.27.7.1.1Ready
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.8Ready
242Side effects of function objects25.2.3Ready
243get and getline when sentry reports failure27.6.1.3DR
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.5DR
249Return Type of auto_ptr::operator=20.4.5NAD
250splicing invalidates iterators23.2.2.4Ready
251basic_stringbuf missing allocator_type27.7.1DR
252missing casts/C-style casts used in iostreams27.7DR
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.2DR
257STL functional object and iterator inheritance.20.3.1NAD
258Missing allocator requirement20.1.5Open
259basic_string::operator[] and const correctness21.3.4Ready
260Inconsistent return type of istream_iterator::operator++(int)24.5.1.2DR
261Missing description of istream_iterator::operator!=24.5.1.2DR
262Bitmask operator ~ specified incorrectly17.3.2.1.2DR
263Severe restriction on basic_string reference counting21.3DR
264Associative container insert(i, j) complexity requirements are not feasible.23.1.2Ready
265std::pair::pair() effects overly restrictive20.2.2DR
266bad_exception::~bad_exception() missing Effects clause18.6.2.1Ready
267interaction of strstreambuf::overflow() and seekoff()D.7.1.3Ready
268Typo in locale synopsis22.1.1DR
269cstdarg and unnamed parameters18.7NAD
270Binary search requirements overly strict25.3.3Review
271basic_iostream missing typedefs27.6.1.5Ready
272Missing parentheses around subexpression27.4.4.3Ready
273Missing ios_base qualification on members of a dependent class27Ready
274a missing/impossible allocator requirement20.1.5Review
275Wrong type in num_get::get() overloads22.2.2.1.1Ready
276Assignable requirement for container value type overly strict23.1Review
277Normative encouragement in allocator requirements unclear20.1.5NAD
278What does iterator validity mean?23.2.2.4Review
279const and non-const iterators should have equivalent typedefs23.1NAD
280Comparison of reverse_iterator to const reverse_iterator24.4.1Open
281std::min() and max() requirements overly restrictive25.3.7Ready
282What types does numpunct grouping refer to?22.2.2.2.2Open
283std::replace() requirement incorrect/insufficient25.2.4Open
284unportable example in 20.3.7, p620.3.7Ready
285minor editorial errors in fstream ctors27.8.1.6Ready
286<cstdlib> requirements missing size_t typedef25.4Ready
287conflicting ios_base fmtflags27.4.2.2NAD
288<cerrno> requirements missing macro EILSEQ19.3Ready
289<cmath> requirements missing C float and long double versions26.5NAD
290Requirements to for_each and its function object25.1.1Open
291Underspecification of set algorithms25.3.5Open
292effects of a.copyfmt (a)27.4.4.2Ready
293Order of execution in transform algorithm25.2.3NAD
294User defined macros and standard headers17.4.3.1.1Open
295Is abs defined in <cmath>?26.5Ready
296Missing descriptions and requirements of pair operators20.2.2Review
297const_mem_fun_t<>::argument_type should be const T*20.3.8Ready
298::operator delete[] requirement incorrect/insufficient18.4.1.2Ready
299Incorrect return types for iterator dereference24.1.4Open
300list::merge() specification incomplete23.2.2.4Open
301basic_string template ctor effects clause omits allocator argument21.3.1Ready
302Need error indication from codecvt<>::do_length22.2.1.5.2NAD
303Bitset input operator underspecified23.3.5.3Ready
304Must *a return an lvalue when a is an input iterator?24.1Open
305Default behavior of codecvt<wchar_t, char, mbstate_t>::length()22.2.1.5.2Review
306offsetof macro and non-POD types18.1Ready
307Lack of reference typedefs in container adaptors23.2.3Ready
308Table 82 mentions unrelated headers27Ready
309Does sentry catch exceptions?27.6Open
310Is errno a macro?17.4.1.2Review
311Incorrect wording in basic_ostream class synopsis27.6.2.1Review
312Table 27 is missing headers20Ready
313set_terminate and set_unexpected question18.6.3.3NAD
314Is the stack unwound when terminate() is called?18.6.3.3NAD
315Bad "range" in list::unique complexity23.2.2.4New
316Vague text in Table 6923.1.2New
317Instantiation vs. specialization of facets22New
318Misleading comment in definition of numpunct_byname22.2.3.2New
319Storage allocation wording confuses "Required behavior", "Requires"18.4.1.1New
320list::assign overspecified23.2.2.1New
321Typo in num_get22.2.2.1.2New
322iterator and const_iterator should have the same value type23.1New

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