C++ Standard Library Issues List (Revision 16)

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

Issue Title Section Status
1 C library linkage editing oversight 17.4.2.2 DR
2 Auto_ptr conversions effects incorrect 20.4.5.3 NAD
3 Atexit registration during atexit() call is not described 18.3 DR
4 Basic_string size_type and difference_type should be implementation defined 21.3 NAD
5 String::compare specification questionable 21.3.6.8 DR
6 File position not an offset unimplementable 27.4.3 NAD
7 String clause minor problems 21 DR
8 Locale::global lacks guarantee 22.1.1.5 DR
9 Operator new(0) calls should not yield the same pointer 18.4.1 DR
10 Codecvt<>::do unclear 22.2.1.5.2 Dup
11 Bitset minor problems 23.3.5 DR
12 Way objects hold allocators unclear 20.1.5 NAD
13 Eos refuses to die 27.6.1.2.3 DR
14 Locale::combine should be const 22.1.1.3 DR
15 Locale::name requirement inconsistent 22.1.1.3 DR
16 Bad ctype_byname<char> decl 22.2.1.4 DR
17 Bad bool parsing 22.2.2.1.2 DR
18 Get(...bool&) omitted 22.2.2.1.1 DR
19 "Noconv" definition too vague 22.2.1.5.2 DR
20 Thousands_sep returns wrong type 22.2.3.1.2 DR
21 Codecvt_byname<> instantiations 22.1.1.1.1 DR
22 Member open vs. flags 27.8.1.7 DR
23 Num_get overflow result 22.2.2.1.2 Open
24 "do_convert" doesn't exist 22.2.1.5.2 DR
25 String operator<< uses width() value wrong 21.3.7.9 DR
26 Bad sentry example 27.6.1.1.2 DR
27 String::erase(range) yields wrong iterator 21.3.5.5 DR
28 Ctype<char>is ambiguous 22.2.1.3.2 DR
29 Ios_base::init doesn't exist 27.3.1 DR
30 Wrong header for LC_* 22.1.1.1.1 DR
31 Immutable locale values 22.1.1 DR
32 Pbackfail description inconsistent 27.5.2.4.4 DR
33 Codecvt<> mentions from_type 22.2.1.5.2 DR
34 True/falsename() not in ctype<> 22.2.2.2.2 DR
35 No manipulator unitbuf in synopsis 27.4 DR
36 Iword & pword storage lifetime omitted 27.4.2.5 DR
37 Leftover "global" reference 22.1.1 DR
38 Facet definition incomplete 22.1.2 DR
39 istreambuf_iterator<>::operator++(int) definition garbled 24.5.3.4 DR
40 Meaningless normative paragraph in examples 22.2.8 DR
41 Ios_base needs clear(), exceptions() 27.4.2 DR
42 String ctors specify wrong default allocator 21.3 DR
43 Locale table correction 22.2.1.5.2 Dup
44 Iostreams use operator== on int_type values 27 Open
45 Stringstreams read/write pointers initial position unclear 27.7.3 NAD
46 Minor Annex D errors D.7 DR
47 Imbue() and getloc() Returns clauses swapped 27.4.2.3 DR
48 Use of non-existent exception constructor 27.4.2.1.1 DR
49 Underspecification of ios_base::sync_with_stdio 27.4.2.4 Open
50 Copy constructor and assignment operator of ios_base 27.4.2 DR
51 Requirement to not invalidate iterators missing 23.1 DR
52 Small I/O problems 27.4.3.2 DR
53 Basic_ios destructor unspecified 27.4.4.1 DR
54 Basic_streambuf's destructor 27.5.2.1 DR
55 Invalid stream position is undefined 27 DR
56 Showmanyc's return type 27.5.2 DR
57 Mistake in char_traits 21.1.3.2 DR
58 Extracting a char from a wide-oriented stream 27.6.1.2.3 NAD
59 Ambiguity in specification of gbump 27.5.2.3.1 DR
60 What is a formatted input function? 27.6.1.2.1 DR
61 Ambiguity in iostreams exception policy 27.6.1.3 DR
62 Sync's return value 27.6.1.3 DR
63 Exception-handling policy for unformatted output 27.6.2.6 DR
64 Exception handling in basic_istream::operator>>(basic_streambuf*) 27.6.1.2.3 DR
65 Underspecification of strstreambuf::seekoff D.7.1.3 NAD
66 Strstreambuf::setbuf D.7.1.3 DR
67 Setw useless for strings 21.3.7.9 Dup
68 Extractors for char* should store null at end 27.6.1.2.3 DR
69 Must elements of a vector be contiguous? 23.2.4 DR
70 Uncaught_exception() missing throw() specification 18.6 DR
71 Do_get_monthname synopsis missing argument 22.2.5.1 DR
72 Do_convert phantom member function 22.2.1.5 Dup
73 is_open should be const 27.8.1 NAD
74 Garbled text for codecvt::do_max_length 22.2.1.5.2 DR
75 Contradiction in codecvt::length's argument types 22.2.1.5 DR
76 Can a codecvt facet always convert one internal character at a time? 22.2.1.5 Open
77 Valarray operator[] const returning value 26.3.2.3 NAD
78 Typo: event_call_back 27.4.2 DR
79 Inconsistent declaration of polar() 26.2.1 DR
80 Global Operators of complex declared twice 26.2.1 DR
81 Wrong declaration of slice operations 26.3.5 NAD
82 Missing constant for set elements 23.1.2 NAD
83 String::npos vs. string::max_size() 21.3 DR
84 Ambiguity with string::insert() 21.3.5 NAD
85 String char types 21 NAD
86 String constructors don't describe exceptions 21.3.1 DR
87 Error in description of string::compare() 21.3.6.8 Dup
88 Inconsistency between string::insert() and string::append() 21.3.5.4 NAD
89 Missing throw specification for string::insert() and string::replace() 21.3.5.4 Dup
90 Incorrect description of operator >> for strings 21.3.7.9 DR
91 Description of operator>> and getline() for string<> might cause endless loop 21.3.7.9 Open
92 Incomplete Algorithm Requirements 25 Open
93 Incomplete Valarray Subset Definitions 26.3 NAD
94 May library implementors add template parameters to Standard Library classes? 17.4.4 NAD
95 Members added by the implementation 17.4.4.4 NAD
96 Vector<bool> is not a container 23.2.5 Open
97 Insert inconsistent definition 23 NAD
98 Input iterator requirements are badly written 24.1.1 Open
99 Reverse_iterator comparisons completely wrong 24.4.1.3.13 NAD
100 Insert iterators/ostream_iterators overconstrained 24.4.2 NAD
101 No way to free storage for vector and deque 23.2.4 NAD
102 Bug in insert range in associative containers 23.1.2 Dup
103 set::iterator is required to be modifiable, but this allows modification of keys 23.1.2 Ready
104 Description of basic_string::operator[] is unclear 21.3.4 NAD
105 fstream ctors argument types desired 27.8 NAD
106 Numeric library private members are implementation defined 26.3.5 DR
107 Valarray constructor is strange 26.3.2 NAD
108 Lifetime of exception::what() return unspecified 18.6.1 DR
109 Missing binders for non-const sequence elements 20.3.6 Open
110 istreambuf_iterator::equal not const 24.5.3 DR
111 istreambuf_iterator::equal overspecified, inefficient 24.5.3.5 Open
112 Minor typo in ostreambuf_iterator constructor 24.5.4.1 DR
113 Missing/extra iostream sync semantics 27.6.1.1 NAD
114 Placement forms example in error twice 18.4.1.3 DR
115 Typo in strstream constructors D.7.4.1 DR
116 bitset cannot be constructed with a const char* 23.3.5 NAD
117 basic_ostream uses nonexistent num_put member functions 27.6.2.5.2 Open
118 basic_istream uses nonexistent num_get member functions 27.6.1.2.2 Ready
119 Should virtual functions be allowed to strengthen the exception specification? 17.4.4.8 DR
120 Can an implementor add specializations? 17.4.3.1 Open
121 Detailed definition for ctype<wchar_t> specialization missing 22.1.1.1.1 NAD
122 streambuf/wstreambuf description should not say they are specializations 27.5.2 DR
123 Should valarray helper arrays fill functions be const? 26.3.5.4 Open
124 ctype_byname<charT>::do_scan_is & do_scan_not return type should be const charT* 22.2.1.2 DR
125 valarray<T>::operator!() return type is inconsistent 26.3.2 DR
126 typos in Effects clause of ctype::do_narrow() 22.2.1.1.2 DR
127 auto_ptr<> conversion issues 20.4.5 DR
128 Need open_mode() function for file stream, string streams, file buffers, and string  buffers 27.7 NAD
129 Need error indication from seekp() and seekg() 27.6.1.3 DR
130 Return type of container::erase(iterator) differs for associative containers 23.1.2 NAD
131 list::splice throws nothing 23.2.2.4 NAD
132 list::resize description uses random access iterators 23.2.2.2 DR
133 map missing get_allocator() 23.3.1 DR
134 vector constructors over specified 23.2.4.1 DR
135 basic_iostream doubly initialized 27.6.1.5.1 NAD
136 seekp, seekg setting wrong streams? 27.6.1.3 Ready
137 Do use_facet and has_facet look in the global locale? 22.1.1 DR
138 Class ctype_byname<char> redundant and misleading 22.2.1.4 NAD
139 Optional sequence operation table description unclear 23.1.1 DR
140 map<Key, T>::value_type does not satisfy the assignable requirement 23.3.1 NAD
141 basic_string::find_last_of, find_last_not_of say pos instead of xpos 21.3.6.4 DR
142 lexicographical_compare complexity wrong 25.3.8 DR
143 C .h header wording unclear D.5 NAD
144 Deque constructor complexity wrong 23.2.1.1 DR
145 adjustfield lacks default value  27.4.4.1 NAD
146 complex<T> Inserter and Extractor need sentries 26.2.6 DR
147 Library Intro refers to global functions that aren't global 17.4.4.3 DR
148 Functions in the example facet BoolNames should be const 22.2.8 DR
149 Insert should return iterator to first element inserted 23.1.1 NAD
150 Find_first_of says integer instead of iterator 25.1.4 DR
151 Can't currently clear() empty container 23.1.1 DR
152 Typo in scan_is() semantics 22.2.1.1.2 DR
153 Typo in narrow() semantics 22.2.1.3.2 Ready
154 Missing double specifier for do_get() 22.2.2.1.2 DR
155 Typo in naming the class defining the class Init 27.3 DR
156 Typo in imbue() description 27.4.2.3 DR
157 Meaningless error handling for pword() and iword() 27.4.2.5 Dup
158 Underspecified semantics for setbuf() 27.5.2.4.2 DR
159 Strange use of underflow() 27.5.2.4.3 DR
160 Typo: Use of non-existing function exception() 27.6.1.1 DR
161 Typo: istream_iterator vs. istreambuf_iterator 27.6.1.2.2 DR
162 Really "formatted input functions"? 27.6.1.2.3 Dup
163 Return of gcount() after a call to gcount 27.6.1.3 Dup
164 do_put() has apparently unused fill argument 22.2.5.3.2 DR
165 xsputn(), pubsync() never called by basic_ostream members? 27.6.2.1 Ready
166 Really "formatted output functions"? 27.6.2.5.3 Dup
167 Improper use of traits_type::length() 27.6.2.5.4 Review
168 Typo: formatted vs. unformatted 27.6.2.6 DR
169 Bad efficiency of overflow() mandated 27.7.1.3 DR
170 Inconsistent definition of traits_type 27.7.4 DR
171 Strange seekpos() semantics due to joint position 27.8.1.4 Ready
172 Inconsistent types for basic_istream::ignore() 27.6.1.3 DR
173 Inconsistent types for basic_filebuf::setbuf() 27.8.1.4 DR
174 Typo: OFF_T vs. POS_T D.6 DR
175 Ambiguity for basic_streambuf::pubseekpos() and a few other functions. D.6 DR
176 exceptions() in ios_base...? D.6 DR
177 Complex operators cannot be explicitly instantiated 26.2.6 NAD
178 Should clog and cerr initially be tied to cout? 27.3.1 NAD
179 Comparison of const_iterators to iterators doesn't work 23.1 Ready
180 Container member iterator arguments constness has unintended consequences 23 NAD
181 make_pair() unintended behavior 20.2.2 DR
182 Ambiguous references to size_t 17 Review
183 I/O stream manipulators don't work for wide character streams 27.6.3 Ready
184 numeric_limits<bool> wording problems 18.2.1.5 Ready
185 Questionable use of term "inline" 20.3 Ready
186 bitset::set() second parameter should be bool 23.3.5.2 Ready
187 iter_swap underspecified 25.2.2 Open
188 valarray helpers missing augmented assignment operators 26.3.2.6 NAD
189 setprecision() not specified correctly 27.4.2.2 DR
190 min() and max() functions should be std::binary_functions 25.3.7 NAD
191 Unclear complexity for algorithms such as binary search 25.3.3 NAD
192 a.insert(p,t) is inefficient and overconstrained 23.1.2 NAD
193 Heap operations description incorrect 25.3.6 DR
194 rdbuf() functions poorly specified 27.4.4 NAD
195 Should basic_istream::sentry's constructor ever set eofbit? 27.6.1.1.2 DR
196 Placement new example has alignment problems 18.4.1.3 NAD
197 max_size() underspecified 20.1.5 Review
198 Validity of pointers and references unspecified after iterator destruction 24.1 Review
199 What does allocate(0) return? 20.1.5 DR
200 Forward iterator requirements don't allow constant iterators 24.1.3 Open
201 Numeric limits terminology wrong 18.2.1 Open
202 unique() effects unclear when predicate not an equivalence relation 25.2.8 Open
203 basic_istream::sentry::sentry() is uninstantiable with ctype<user-defined type> 27.6.1.1.2 NAD
204 distance(first, last) when "last" is before "first" 24.3.4 NAD
205 numeric_limits unclear on how to determine floating point types 18.2.1.2 NAD
206 operator new(size_t, nothrow) may become unlinked to ordinary operator new if ordinary version replaced 18.4.1.1 NAD
207 ctype<char> members return clause incomplete 22.2.1.3.2 Open
208 Unnecessary restriction on past-the-end iterators 24.1 DR
209 basic_string declarations inconsistent 21.3 DR
210 distance first and last confused 25 DR
211 operator>>(istream&, string&) doesn't set failbit 21.3.7.9 DR
212 Empty range behavior unclear for several algorithms 25.3.7 DR
213 Math function overloads ambiguous 26.5 NAD
214 set::find() missing const overload 23.3.3 Ready
215 Can a map's key_type be const? 23.1.2 NAD
216 setbase manipulator description flawed 27.6.3 Dup
217 Facets example (Classifying Japanese characters) contains errors 22.2.8 DR
218 Algorithms do not use binary predicate objects for default comparisons 25.3 NAD
219 find algorithm missing version that takes a binary predicate argument 25.1.2 NAD
220 ~ios_base() usage valid? 27.4.2.7 DR
221 num_get<>::do_get stage 2 processing broken 22.2.2.1.2 Ready
222 Are throw clauses necessary if a throw is already implied by the effects clause? 17.3.1.3 DR
223 reverse algorithm should use iter_swap rather than swap 25.2.9 DR
224 clear() complexity for associative containers refers to undefined N 23.1.2 DR
225 std:: algorithms use of other unqualified algorithms 17.4.4.3 Open
226 User supplied specializations or overloads of namespace std function templates 17.4.3.1 Open
227 std::swap() should require CopyConstructible or DefaultConstructible arguments 25.2.2 DR
228 Incorrect specification of "..._byname" facets 22.2 Review
229 Unqualified references of other library entities 17.4.1.1 Open
230 Assignable specified without also specifying CopyConstructible 17 Review
231 Precision in iostream? 22.2.2.2.2 Open
232 "depends" poorly defined in 17.4.3.1 17.4.3.1 Open
233 Insertion hints in associative containers 23.1.2 Open
234 Typos in allocator definition 20.4.1.1 Ready
235 No specification of default ctor for reverse_iterator 24.4.1.1 Open
236 ctype<char>::is() member modifies facet 24.2.1.3.2 Dup
237 Undefined expression in complexity specification 23.2.2.1 Ready
238 Contradictory results of stringbuf initialization. 27.7.1.1 Review
239 Complexitiy of unique() and/or unique_copy incorrect 25.2.8 Open
240 Complexity of adjacent_find() is meaningless 25.1.5 Review
241 Does unique_copy() require CopyConstructible and Assignable? 25.2.8 Review
242 Side effects of function objects 25.2.3 Review
243 get and getline when sentry reports failure 27.6.1.3 Ready
244 Must find's third argument be CopyConstructible? 25.1.2 NAD
245 Which operations on istream_iterator trigger input operations? 24.5.1 NAD
246 a.insert(p,t) is incorrectly specified 23.1.2 Dup
247 vector, deque::insert complexity 23.3.4.4 Open
248 time_get fails to set eofbit 22.2.5 Ready
249 Return Type of auto_ptr::operator= 20.4.5 NAD
250 splicing invalidates iterators 23.2.2.4 Open
251 basic_stringbuf missing allocator_type 27.7.1 Ready
252 missing casts/C-style casts used in iostreams 27.7 Ready
253 valarray helper functions are almost entirely useless 26.3.2.1 Open
254 Exception types in clause 19 are constructed from std::string 19.1 Open
255 Why do basic_streambuf<>::pbump() and gbump() take an int? 27.5.2 NAD
256 typo in 27.4.4.2, p17: copy_event does not exist 27.4.4.2 Ready
257 STL functional object and iterator inheritance. 20.3.1 NAD
258 Missing allocator requirement 20.1.5 Open
259 basic_string::operator[] and const correctness 21.3.4 Review
260 Inconsistent return type of istream_iterator::operator++(int) 24.5.1.2 Ready
261 Missing description of istream_iterator::operator!= 24.5.1.2 Ready
262 Bitmask operator ~ specified incorrectly 17.3.2.1.2 Ready
263 Severe restriction on basic_string reference counting 21.3 Ready
264 Associative container insert(i, j) complexity requirements are not feasible. 23.1.2 Review
265 std::pair::pair() effects overly restrictive 20.2.2 Ready
266 bad_exception::~bad_exception() missing Effects clause 18.6.2.1 Review
267 interaction of strstreambuf::overflow() and seekoff() D.7.1.3 Open
268 Typo in locale synopsis 22.1.1 Ready
269 cstdarg and unnamed parameters 18.7 NAD
270 Binary search requirements overly strict 25.3.3 Open
271 basic_iostream missing typedefs 27.6.1.5 New
272 Missing parentheses around subexpression 27.4.4.3 New
273 Missing ios_base qualification on members of a dependent class 27 New
274 a missing/impossible allocator requirement 20.1.5 New
275 Wrong type in num_get::get() overloads 22.2.2.1.1 New
276 Assignable requirement for container value type overly strict 23.1 New
277 Normative encouragement in allocator requirements unclear 20.1.5 New

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