C++ Standard Library Issues List (Revision 17)

Index by Section

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:

Index by Section

SectionIssueTitleStatus
17182Ambiguous references to size_tReview
17230Assignable specified without also specifying CopyConstructibleReview
17.3.1.3222Are throw clauses necessary if a throw is already implied by the effects clause?DR
17.3.2.1.2262Bitmask operator ~ specified incorrectlyReady
17.4.1.1229Unqualified references of other library entitiesOpen
17.4.1.2310Is errno a macro?New
17.4.2.21C library linkage editing oversightDR
17.4.3.1120Can an implementor add specializations?Open
17.4.3.1226User supplied specializations or overloads of namespace std function templatesOpen
17.4.3.1232"depends" poorly defined in 17.4.3.1Review
17.4.3.1.1294User defined macros and standard headersNew
17.4.494May library implementors add template parameters to Standard Library classes?NAD
17.4.4.3147Library Intro refers to global functions that aren't globalDR
17.4.4.3225std:: algorithms use of other unqualified algorithmsOpen
17.4.4.495Members added by the implementationNAD
17.4.4.8119Should virtual functions be allowed to strengthen the exception specification?DR
18.1306offsetof macro and non-POD typesNew
18.2.1201Numeric limits terminology wrongOpen
18.2.1.2205 numeric_limits unclear on how to determine floating point typesNAD
18.2.1.5184numeric_limits<bool> wording problemsReady
18.33Atexit registration during atexit() call is not describedDR
18.4.19Operator new(0) calls should not yield the same pointerDR
18.4.1.1206operator new(size_t, nothrow) may become unlinked to ordinary operator new if ordinary version replacedNAD
18.4.1.2298::operator delete[] requirement incorrect/insufficientNew
18.4.1.3114Placement forms example in error twiceDR
18.4.1.3196Placement new example has alignment problemsDup
18.670Uncaught_exception() missing throw() specificationDR
18.6.1108Lifetime of exception::what() return unspecifiedDR
18.6.2.1266bad_exception::~bad_exception() missing Effects clauseReview
18.6.470Uncaught_exception() missing throw() specificationDR
18.7269cstdarg and unnamed parametersNAD
19.1254Exception types in clause 19 are constructed from std::stringOpen
19.3288<cerrno> requirements missing macro EILSEQNew
19.3310Is errno a macro?New
20.1.512Way objects hold allocators unclearNAD
20.1.5197max_size() underspecifiedReview
20.1.5199What does allocate(0) return?DR
20.1.5258Missing allocator requirementOpen
20.1.5274a missing/impossible allocator requirementNew
20.1.5277Normative encouragement in allocator requirements unclearNew
20.2.2181make_pair() unintended behaviorDR
20.2.2265std::pair::pair() effects overly restrictiveReady
20.2.2296Missing descriptions and requirements of pair operatorsNew
20.3185Questionable use of term "inline"Ready
20.3.1257STL functional object and iterator inheritance.NAD
20.3.6109Missing binders for non-const sequence elementsOpen
20.3.7284unportable example in 20.3.7, p6New
20.3.8297const_mem_fun_t<>::argument_type should be const T*New
20.4.1.1234Typos in allocator definitionReady
20.4.5127auto_ptr<> conversion issuesDR
20.4.5249Return Type of auto_ptr::operator=NAD
20.4.5.32Auto_ptr conversions effects incorrectNAD
217String clause minor problemsDR
2185String char typesNAD
21.1.3.257Mistake in char_traitsDR
21.34Basic_string size_type and difference_type should be implementation definedNAD
21.342String ctors specify wrong default allocatorDR
21.383String::npos vs. string::max_size()DR
21.3209basic_string declarations inconsistentDR
21.3263Severe restriction on basic_string reference countingReady
21.3.186String constructors don't describe exceptionsDR
21.3.1301basic_string template ctor effects clause omits allocator argumentNew
21.3.4104Description of basic_string::operator[] is unclearNAD
21.3.4259basic_string::operator[] and const correctnessReview
21.3.584Ambiguity with string::insert()NAD
21.3.5.288Inconsistency between string::insert() and string::append()NAD
21.3.5.488Inconsistency between string::insert() and string::append()NAD
21.3.5.489Missing throw specification for string::insert() and string::replace()Dup
21.3.5.527String::erase(range) yields wrong iteratorDR
21.3.5.689Missing throw specification for string::insert() and string::replace()Dup
21.3.6.4141basic_string::find_last_of, find_last_not_of say pos instead of xposDR
21.3.6.6141basic_string::find_last_of, find_last_not_of say pos instead of xposDR
21.3.6.85String::compare specification questionableDR
21.3.6.887Error in description of string::compare()Dup
21.3.7.925String operator<< uses width() value wrongDR
21.3.7.967Setw useless for stringsDup
21.3.7.990Incorrect description of operator >> for stringsDR
21.3.7.991Description of operator>> and getline() for string<> might cause endless loopReview
21.3.7.9211operator>>(istream&, string&) doesn't set failbitDR
22.1.131Immutable locale valuesDR
22.1.137Leftover "global" referenceDR
22.1.1137Do use_facet and has_facet look in the global locale?DR
22.1.1268Typo in locale synopsisReady
22.1.1.1.121Codecvt_byname<> instantiationsDR
22.1.1.1.130Wrong header for LC_*DR
22.1.1.1.1121Detailed definition for ctype<wchar_t> specializationNAD
22.1.1.314Locale::combine should be constDR
22.1.1.315Locale::name requirement inconsistentDR
22.1.1.58Locale::global lacks guaranteeDR
22.1.238Facet definition incompleteDR
22.2228Incorrect specification of "..._byname" facetsReview
22.2.1.1.2126typos in Effects clause of ctype::do_narrow()DR
22.2.1.1.2152Typo in scan_is() semanticsDR
22.2.1.2124ctype_byname<charT>::do_scan_is & do_scan_not return type should be const charT*DR
22.2.1.3.228Ctype<char>is ambiguousDR
22.2.1.3.2153Typo in narrow() semanticsReady
22.2.1.3.2207ctype<char> members return clause incompleteDup
22.2.1.3.2236ctype<char>::is() member modifies facetDup
22.2.1.416Bad ctype_byname<char> declDR
22.2.1.4138Class ctype_byname<char> redundant and misleadingNAD
22.2.1.572Do_convert phantom member functionDup
22.2.1.575Contradiction in codecvt::length's argument typesDR
22.2.1.576Can a codecvt facet always convert one internal character at a time?Open
22.2.1.5.210Codecvt<>::do unclearDup
22.2.1.5.219"Noconv" definition too vagueDR
22.2.1.5.224"do_convert" doesn't existDR
22.2.1.5.233Codecvt<> mentions from_typeDR
22.2.1.5.243Locale table correctionDup
22.2.1.5.274Garbled text for codecvt::do_max_lengthDR
22.2.1.5.2302Need error indication from codecvt<>::do_lengthNew
22.2.1.5.2305Default behavior of codecvt<wchar_t, char, mbstate_t>::length()New
22.2.2.1.118Get(...bool&) omittedDR
22.2.2.1.1275Wrong type in num_get::get() overloadsNew
22.2.2.1.217Bad bool parsingDR
22.2.2.1.223Num_get overflow resultOpen
22.2.2.1.2154Missing double specifier for do_get()DR
22.2.2.1.2221num_get<>::do_get stage 2 processing brokenReady
22.2.2.2.234True/falsename() not in ctype<>DR
22.2.2.2.2231Precision in iostream?Open
22.2.2.2.2282What types does numpunct grouping refer to?New
22.2.3.1.220Thousands_sep returns wrong typeDR
22.2.5248time_get fails to set eofbitReady
22.2.5.171Do_get_monthname synopsis missing argumentDR
22.2.5.3.2164do_put() has apparently unused fill argumentDR
22.2.840Meaningless normative paragraph in examplesDR
22.2.8148Functions in the example facet BoolNames should be constDR
22.2.8217Facets example (Classifying Japanese characters) contains errorsDR
2397Insert inconsistent definitionNAD
23180Container member iterator arguments constness has unintended consequencesNAD
23.151Requirement to not invalidate iterators missingDR
23.1179Comparison of const_iterators to iterators doesn't workReview
23.1197max_size() underspecifiedReview
23.1276Assignable requirement for container value type overly strictNew
23.1279const and non-const iterators should have equivalent typedefsNew
23.1.1130Return type of container::erase(iterator) differs for associative containersNAD
23.1.1139Optional sequence operation table description unclearDR
23.1.1149Insert should return iterator to first element insertedNAD
23.1.1151Can't currently clear() empty containerDR
23.1.282Missing constant for set elementsNAD
23.1.2102Bug in insert range in associative containersDup
23.1.2103set::iterator is required to be modifiable, but this allows modification of keysReady
23.1.2130Return type of container::erase(iterator) differs for associative containersNAD
23.1.2192a.insert(p,t) is inefficient and overconstrainedNAD
23.1.2215Can a map's key_type be const?NAD
23.1.2224clear() complexity for associative containers refers to undefined NDR
23.1.2233Insertion hints in associative containersOpen
23.1.2246a.insert(p,t) is incorrectly specifiedDup
23.1.2264Associative container insert(i, j) complexity requirements are not feasible.Review
23.2.1101No way to free storage for vector and dequeNAD
23.2.1.1144Deque constructor complexity wrong DR
23.2.2.1237Undefined expression in complexity specificationReady
23.2.2.2132list::resize description uses random access iteratorsDR
23.2.2.4131list::splice throws nothingNAD
23.2.2.4250splicing invalidates iteratorsReview
23.2.2.4278What does iterator validity mean?New
23.2.2.4300list::merge() specification incompleteNew
23.2.3307Lack of reference typedefs in container adaptorsNew
23.2.469Must elements of a vector be contiguous?DR
23.2.4101No way to free storage for vector and dequeNAD
23.2.4.1134vector constructors over specifiedDR
23.2.4.3247vector, deque::insert complexityOpen
23.2.596Vector<bool> is not a containerOpen
23.3.1133map missing get_allocator()DR
23.3.1140map<Key, T>::value_type does not satisfy the assignable requirementNAD
23.3.3214set::find() missing const overloadReady
23.3.4214set::find() missing const overloadReady
23.3.511Bitset minor problemsDR
23.3.5116bitset cannot be constructed with a const char*NAD
23.3.5.2186bitset::set() second parameter should be boolReady
23.3.5.3303Bitset input operator underspecifiedNew
24.1198Validity of pointers and references unspecified after iterator destructionReview
24.1208Unnecessary restriction on past-the-end iteratorsDR
24.1304Must *a return an lvalue when a is an input iterator?New
24.1.198Input iterator requirements are badly writtenOpen
24.1.3200Forward iterator requirements don't allow constant iteratorsOpen
24.1.4299Incorrect return types for iterator dereferenceNew
24.1.5299Incorrect return types for iterator dereferenceNew
24.3.2257STL functional object and iterator inheritance.NAD
24.3.4204distance(first, last) when "last" is before "first"NAD
24.4.1280Comparison of reverse_iterator to const reverse_iteratorNew
24.4.1.1235No specification of default ctor for reverse_iteratorReview
24.4.1.3.1399Reverse_iterator comparisons completely wrongNAD
24.4.2100Insert iterators/ostream_iterators overconstrainedNAD
24.5.1245Which operations on istream_iterator trigger input operations?NAD
24.5.1.2260Inconsistent return type of istream_iterator::operator++(int)Ready
24.5.1.2261Missing description of istream_iterator::operator!=Ready
24.5.3110istreambuf_iterator::equal not constDR
24.5.3.439istreambuf_iterator<>::operator++(int) definition garbledDR
24.5.3.5110istreambuf_iterator::equal not constDR
24.5.3.5111istreambuf_iterator::equal overspecified, inefficientOpen
24.5.4100Insert iterators/ostream_iterators overconstrainedNAD
24.5.4.1112Minor typo in ostreambuf_iterator constructorDR
2592Incomplete Algorithm RequirementsOpen
25210distance first and last confusedDR
25.1.1290Requirements to for_each and its function objectNew
25.1.2219find algorithm missing version that takes a binary predicate argumentNAD
25.1.2244Must find's third argument be CopyConstructible?NAD
25.1.4150Find_first_of says integer instead of iterator DR
25.1.5240Complexity of adjacent_find() is meaninglessReview
25.2.2187iter_swap underspecifiedOpen
25.2.2227std::swap() should require CopyConstructible or DefaultConstructible argumentsDR
25.2.3242Side effects of function objectsReview
25.2.3293Order of execution in transform algorithmNew
25.2.4283std::replace() requirement incorrect/insufficientNew
25.2.8202unique() effects unclear when predicate not an equivalence relationOpen
25.2.8239Complexity of unique() and/or unique_copy incorrectOpen
25.2.8241Does unique_copy() require CopyConstructible and Assignable?Review
25.2.9223reverse algorithm should use iter_swap rather than swapDR
25.3218Algorithms do not use binary predicate objects for default comparisonsNAD
25.3.3191Unclear complexity for algorithms such as binary searchNAD
25.3.3270Binary search requirements overly strictOpen
25.3.5291Underspecification of set algorithmsNew
25.3.6193Heap operations description incorrectDR
25.3.7190min() and max() functions should be std::binary_functionsNAD
25.3.7212Empty range behavior unclear for several algorithmsDR
25.3.7281std::min() and max() requirements overly restrictiveNew
25.3.8142lexicographical_compare complexity wrongDR
25.4286<cstdlib> requirements missing size_t typedefNew
26.2.179Inconsistent declaration of polar()DR
26.2.180Global Operators of complex declared twiceDR
26.2.280Global Operators of complex declared twiceDR
26.2.6146complex<T> Inserter and Extractor need sentriesDR
26.2.6177Complex operators cannot be explicitly instantiatedNAD
26.2.779Inconsistent declaration of polar()DR
26.393Incomplete Valarray Subset DefinitionsNAD
26.3.2107Valarray constructor is strangeNAD
26.3.2125valarray<T>::operator!() return type is inconsistentDR
26.3.2.1253valarray helper functions are almost entirely uselessOpen
26.3.2.2253valarray helper functions are almost entirely uselessOpen
26.3.2.377Valarray operator[] const returning valueNAD
26.3.2.6188valarray helpers missing augmented assignment operatorsNAD
26.3.581Wrong declaration of slice operationsNAD
26.3.5106Numeric library private members are implementation definedDR
26.3.5.4123Should valarray helper arrays fill functions be const?Open
26.3.781Wrong declaration of slice operationsNAD
26.3.7.4123Should valarray helper arrays fill functions be const?Open
26.3.881Wrong declaration of slice operationsNAD
26.3.8.4123Should valarray helper arrays fill functions be const?Open
26.3.981Wrong declaration of slice operationsNAD
26.3.9.4123Should valarray helper arrays fill functions be const?Open
26.4242Side effects of function objectsReview
26.5213Math function overloads ambiguousNAD
26.5289<cmath> requirements missing C float and long double versionsNew
26.5295Is abs defined in <cmath>?New
2744Iostreams use operator== on int_type valuesOpen
2755Invalid stream position is undefinedDR
27273Missing ios_base qualification on members of a dependent classNew
27308Table 82 mentions unrelated headersNew
27.3155Typo in naming the class defining the class InitDR
27.3.129Ios_base::init doesn't existDR
27.3.1178Should clog and cerr initially be tied to cout?NAD
27.435No manipulator unitbuf in synopsisDR
27.4.241Ios_base needs clear(), exceptions()DR
27.4.250Copy constructor and assignment operator of ios_baseDR
27.4.278Typo: event_call_backDR
27.4.2.1.148Use of non-existent exception constructorDR
27.4.2.2189setprecision() not specified correctlyDR
27.4.2.2287<cstdlib> conflicting ios_base fmtflagsNew
27.4.2.347Imbue() and getloc() Returns clauses swappedDR
27.4.2.3156Typo in imbue() descriptionDR
27.4.2.449Underspecification of ios_base::sync_with_stdioReview
27.4.2.536Iword & pword storage lifetime omittedDR
27.4.2.5157Meaningless error handling for pword() and iword()Dup
27.4.2.7220~ios_base() usage valid?DR
27.4.36File position not an offset unimplementableNAD
27.4.3.252Small I/O problemsDR
27.4.4194rdbuf() functions poorly specifiedNAD
27.4.4.153Basic_ios destructor unspecifiedDR
27.4.4.1145adjustfield lacks default valueNAD
27.4.4.2256typo in 27.4.4.2, p17: copy_event does not existReady
27.4.4.2292effects of a.copyfmt (a)New
27.4.4.3272Missing parentheses around subexpressionNew
27.5.256Showmanyc's return typeDR
27.5.2122streambuf/wstreambuf description should not say they are specializationsDR
27.5.2255Why do basic_streambuf<>::pbump() and gbump() take an int?NAD
27.5.2.154Basic_streambuf's destructorDR
27.5.2.3.159Ambiguity in specification of gbumpDR
27.5.2.4.2158Underspecified semantics for setbuf()DR
27.5.2.4.3159Strange use of underflow()DR
27.5.2.4.432Pbackfail description inconsistentDR
27.6309Does sentry catch exceptions?New
27.6.1.1113Missing/extra iostream sync semanticsNAD
27.6.1.1160Typo: Use of non-existing function exception()DR
27.6.1.1.226Bad sentry exampleDR
27.6.1.1.2195Should basic_istream::sentry's constructor ever set eofbit?DR
27.6.1.1.2203basic_istream::sentry::sentry() is uninstantiable with ctype<user-defined type>NAD
27.6.1.2.160What is a formatted input function?DR
27.6.1.2.2118basic_istream uses nonexistent num_get member functionsReady
27.6.1.2.2161Typo: istream_iterator vs. istreambuf_iteratorDR
27.6.1.2.313Eos refuses to dieDR
27.6.1.2.358Extracting a char from a wide-oriented streamNAD
27.6.1.2.364Exception handling in basic_istream::operator>>(basic_streambuf*)DR
27.6.1.2.368Extractors for char* should store null at endDR
27.6.1.2.3162Really "formatted input functions"?Dup
27.6.1.361Ambiguity in iostreams exception policyDR
27.6.1.362Sync's return valueDR
27.6.1.3113Missing/extra iostream sync semanticsNAD
27.6.1.3129Need error indication from seekp() and seekg()DR
27.6.1.3136seekp, seekg setting wrong streams?Ready
27.6.1.3163Return of gcount() after a call to gcountDup
27.6.1.3172Inconsistent types for basic_istream::ignore()DR
27.6.1.3243get and getline when sentry reports failureReady
27.6.1.5271basic_iostream missing typedefsNew
27.6.1.5.1135basic_iostream doubly initializedNAD
27.6.2.1165xsputn(), pubsync() never called by basic_ostream members?Ready
27.6.2.1311Incorrect wording in basic_ostream class synopsisNew
27.6.2.4129Need error indication from seekp() and seekg()DR
27.6.2.5.2117basic_ostream uses nonexistent num_put member functionsReview
27.6.2.5.3166Really "formatted output functions"?Dup
27.6.2.5.4167Improper use of traits_type::length()Review
27.6.2.663Exception-handling policy for unformatted outputDR
27.6.2.6168Typo: formatted vs. unformattedDR
27.6.3183I/O stream manipulators don't work for wide character streamsReady
27.6.3216setbase manipulator description flawedDup
27.7128Need open_mode() function for file stream, string streams, file buffers, and string  buffersNAD
27.7252missing casts/C-style casts used in iostreamsReady
27.7.1251basic_stringbuf missing allocator_typeReady
27.7.1.1238Contradictory results of stringbuf initialization.Review
27.7.1.3169Bad efficiency of overflow() mandatedDR
27.7.345Stringstreams read/write pointers initial position unclearNAD
27.7.4170Inconsistent definition of traits_typeDR
27.8105fstream ctors argument types desiredNAD
27.8128Need open_mode() function for file stream, string streams, file buffers, and string  buffersNAD
27.8.173is_open should be constNAD
27.8.1.4171Strange seekpos() semantics due to joint positionReady
27.8.1.4173Inconsistent types for basic_filebuf::setbuf()DR
27.8.1.6285minor editorial errors in fstream ctorsNew
27.8.1.722Member open vs. flagsDR
D.5143C .h header wording unclearNAD
D.6174Typo: OFF_T vs. POS_TDR
D.6175Ambiguity for basic_streambuf::pubseekpos() and a few other functions.DR
D.6176exceptions() in ios_base...?DR
D.746Minor Annex D errorsDR
D.7.1.365Underspecification of strstreambuf::seekoffNAD
D.7.1.366Strstreambuf::setbufDR
D.7.1.3267interaction of strstreambuf::overflow() and seekoff()Review
D.7.4.1115Typo in strstream constructorsDR

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