C++ Standard Library Issues List (Revision 18)

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_tReady
17230Assignable specified without also specifying CopyConstructibleReady
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 incorrectlyDR
17.4.1.1229Unqualified references of other library entitiesOpen
17.4.1.2310Is errno a macro?Review
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.1Ready
17.4.3.1.1294User defined macros and standard headersOpen
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 typesReady
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 problemsDR
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.1319Storage allocation wording confuses "Required behavior", "Requires"New
18.4.1.2298::operator delete[] requirement incorrect/insufficientReady
18.4.1.2319Storage allocation wording confuses "Required behavior", "Requires"New
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 clauseReady
18.6.3.3313set_terminate and set_unexpected questionNAD
18.6.3.3314Is the stack unwound when terminate() is called?NAD
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 EILSEQReady
19.3310Is errno a macro?Review
20312Table 27 is missing headersReady
20.1.512Way objects hold allocators unclearNAD
20.1.5197max_size() underspecifiedOpen
20.1.5199What does allocate(0) return?DR
20.1.5258Missing allocator requirementOpen
20.1.5274a missing/impossible allocator requirementReview
20.1.5277Normative encouragement in allocator requirements unclearNAD
20.2.2181make_pair() unintended behaviorDR
20.2.2265std::pair::pair() effects overly restrictiveDR
20.2.2296Missing descriptions and requirements of pair operatorsReview
20.3185Questionable use of term "inline"DR
20.3.1257STL functional object and iterator inheritance.NAD
20.3.6109Missing binders for non-const sequence elementsReady
20.3.7284unportable example in 20.3.7, p6Ready
20.3.8297const_mem_fun_t<>::argument_type should be const T*Ready
20.4.1.1234Typos in allocator definitionDR
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 countingDR
21.3.186String constructors don't describe exceptionsDR
21.3.1301basic_string template ctor effects clause omits allocator argumentReady
21.3.4104Description of basic_string::operator[] is unclearNAD
21.3.4259basic_string::operator[] and const correctnessReady
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
22317Instantiation vs. specialization of facetsNew
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 synopsisDR
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" facetsReady
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() semanticsDR
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?Review
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_lengthNAD
22.2.1.5.2305Default behavior of codecvt<wchar_t, char, mbstate_t>::length()Review
22.2.2.1.118Get(...bool&) omittedDR
22.2.2.1.1275Wrong type in num_get::get() overloadsReady
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 brokenDR
22.2.2.1.2321Typo in num_getNew
22.2.2.2.234True/falsename() not in ctype<>DR
22.2.2.2.2231Precision in iostream?Review
22.2.2.2.2282What types does numpunct grouping refer to?Open
22.2.3.1.220Thousands_sep returns wrong typeDR
22.2.3.2318Misleading comment in definition of numpunct_bynameNew
22.2.5248time_get fails to set eofbitDR
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() underspecifiedOpen
23.1276Assignable requirement for container value type overly strictReview
23.1279const and non-const iterators should have equivalent typedefsNAD
23.1322iterator and const_iterator should have the same value typeNew
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 keysDR
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 containersReview
23.1.2246a.insert(p,t) is incorrectly specifiedDup
23.1.2264Associative container insert(i, j) complexity requirements are not feasible.Ready
23.1.2316Vague text in Table 69New
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 specificationDR
23.2.2.1320list::assign overspecifiedNew
23.2.2.2132list::resize description uses random access iteratorsDR
23.2.2.4131list::splice throws nothingNAD
23.2.2.4250splicing invalidates iteratorsReady
23.2.2.4278What does iterator validity mean?Review
23.2.2.4300list::merge() specification incompleteOpen
23.2.2.4315Bad "range" in list::unique complexityNew
23.2.3307Lack of reference typedefs in container adaptorsReady
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 overloadDR
23.3.4214set::find() missing const overloadDR
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 boolDR
23.3.5.3303Bitset input operator underspecifiedReady
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?Open
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 dereferenceOpen
24.1.5299Incorrect return types for iterator dereferenceOpen
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_iteratorOpen
24.4.1.1235No specification of default ctor for reverse_iteratorReady
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)DR
24.5.1.2261Missing description of istream_iterator::operator!=DR
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, inefficientNAD
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 objectOpen
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 objectsReady
25.2.3293Order of execution in transform algorithmNAD
25.2.4283std::replace() requirement incorrect/insufficientOpen
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?Ready
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 strictReview
25.3.5291Underspecification of set algorithmsOpen
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 restrictiveReady
25.3.8142lexicographical_compare complexity wrongDR
25.4286<cstdlib> requirements missing size_t typedefReady
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 objectsReady
26.5213Math function overloads ambiguousNAD
26.5289<cmath> requirements missing C float and long double versionsNAD
26.5295Is abs defined in <cmath>?Ready
2744Iostreams use operator== on int_type valuesOpen
2755Invalid stream position is undefinedDR
27273Missing ios_base qualification on members of a dependent classReady
27308Table 82 mentions unrelated headersReady
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.2287conflicting ios_base fmtflagsNAD
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_stdioReady
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 existDR
27.4.4.2292effects of a.copyfmt (a)Ready
27.4.4.3272Missing parentheses around subexpressionReady
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?Open
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 functionsDR
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?DR
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 failureDR
27.6.1.5271basic_iostream missing typedefsReady
27.6.1.5.1135basic_iostream doubly initializedNAD
27.6.2.1165xsputn(), pubsync() never called by basic_ostream members?DR
27.6.2.1311Incorrect wording in basic_ostream class synopsisReview
27.6.2.4129Need error indication from seekp() and seekg()DR
27.6.2.5.2117basic_ostream uses nonexistent num_put member functionsReady
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 streamsDR
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 iostreamsDR
27.7.1251basic_stringbuf missing allocator_typeDR
27.7.1.1238Contradictory results of stringbuf initialization.Ready
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 positionDR
27.8.1.4173Inconsistent types for basic_filebuf::setbuf()DR
27.8.1.6285minor editorial errors in fstream ctorsReady
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()Ready
D.7.4.1115Typo in strstream constructorsDR

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