Reference ISO/IEC IS 14882:1998(E)
This document is the Index by Section for the Library Active Issues List, Library Defect Reports List, and Library Closed Issues List.
Also see:
| Section | Issue | Title | Status |
| 3.6.3 | 462 | Destroying objects with static storage duration | New |
| 17 | 182 | Ambiguous references to size_t | WP |
| 17 | 230 | Assignable specified without also specifying CopyConstructible | WP |
| 17 | 336 | Clause 17 lack of references to deprecated headers | WP |
| 17 | 385 | Does call by value imply the CopyConstructible requirement? | Open |
| 17.3.1.1 | 424 | normative notes | Open |
| 17.3.1.3 | 222 | Are throw clauses necessary if a throw is already implied by the effects clause? | TC |
| 17.3.2.1.2 | 262 | Bitmask operator ~ specified incorrectly | WP |
| 17.3.2.1.2 | 339 | definition of bitmask type restricted to clause 27 | WP |
| 17.4.1.1 | 229 | Unqualified references of other library entities | WP |
| 17.4.1.1 | 350 | allocator<>::address | NAD Future |
| 17.4.1.2 | 310 | Is errno a macro? | WP |
| 17.4.1.2 | 456 | Traditional C header files are overspecified | Open |
| 17.4.1.2 | 465 | Contents of <ciso646> | New |
| 17.4.2.2 | 1 | C library linkage editing oversight | TC |
| 17.4.3.1 | 120 | Can an implementor add specializations? | WP |
| 17.4.3.1 | 226 | User supplied specializations or overloads of namespace std function templates | WP |
| 17.4.3.1 | 232 | "depends" poorly defined in 17.4.3.1 | WP |
| 17.4.3.1 | 422 | explicit specializations of member functions of class templates | Open |
| 17.4.3.1.1 | 294 | User defined macros and standard headers | Open |
| 17.4.3.4 | 404 | May a replacement allocation function be declared inline? | WP |
| 17.4.4 | 94 | May library implementors add template parameters to Standard Library classes? | NAD |
| 17.4.4.3 | 147 | Library Intro refers to global functions that aren't global | TC |
| 17.4.4.3 | 225 | std:: algorithms use of other unqualified algorithms | WP |
| 17.4.4.4 | 95 | Members added by the implementation | NAD |
| 17.4.4.8 | 119 | Should virtual functions be allowed to strengthen the exception specification? | TC |
| 17.4.4.8 | 372 | Inconsistent description of stdlib exceptions | NAD |
| 18.1 | 306 | offsetof macro and non-POD types | WP |
| 18.1 | 449 | Library Issue 306 Goes Too Far | Ready |
| 18.2.1 | 201 | Numeric limits terminology wrong | Open |
| 18.2.1.2 | 205 | numeric_limits unclear on how to determine floating point types | NAD |
| 18.2.1.5 | 184 | numeric_limits<bool> wording problems | WP |
| 18.2.2 | 416 | definitions of XXX_MIN and XXX_MAX macros in climits | Open |
| 18.3 | 3 | Atexit registration during atexit() call is not described | TC |
| 18.3 | 462 | Destroying objects with static storage duration | New |
| 18.4.1 | 9 | Operator new(0) calls should not yield the same pointer | TC |
| 18.4.1 | 404 | May a replacement allocation function be declared inline? | WP |
| 18.4.1.1 | 206 | operator new(size_t, nothrow) may become unlinked to ordinary operator new if ordinary version replaced | NAD |
| 18.4.1.1 | 319 | Storage allocation wording confuses "Required behavior", "Requires" | WP |
| 18.4.1.2 | 298 | ::operator delete[] requirement incorrect/insufficient | WP |
| 18.4.1.2 | 319 | Storage allocation wording confuses "Required behavior", "Requires" | WP |
| 18.4.1.3 | 114 | Placement forms example in error twice | TC |
| 18.4.1.3 | 196 | Placement new example has alignment problems | Dup |
| 18.6 | 70 | Uncaught_exception() missing throw() specification | TC |
| 18.6.1 | 108 | Lifetime of exception::what() return unspecified | TC |
| 18.6.1 | 372 | Inconsistent description of stdlib exceptions | NAD |
| 18.6.1 | 471 | result of what() implementation-defined | New |
| 18.6.2.1 | 266 | bad_exception::~bad_exception() missing Effects clause | WP |
| 18.6.2.4 | 433 | Contradiction in specification of unexpected() | NAD |
| 18.6.3.3 | 313 | set_terminate and set_unexpected question | NAD |
| 18.6.3.3 | 314 | Is the stack unwound when terminate() is called? | NAD |
| 18.6.4 | 70 | Uncaught_exception() missing throw() specification | TC |
| 18.7 | 269 | cstdarg and unnamed parameters | NAD |
| 19.1 | 254 | Exception types in clause 19 are constructed from std::string | Open |
| 19.3 | 288 | <cerrno> requirements missing macro EILSEQ | WP |
| 19.3 | 310 | Is errno a macro? | WP |
| 20 | 312 | Table 27 is missing headers | WP |
| 20.1.3 | 390 | CopyConstructible requirements too strict | NAD Future |
| 20.1.5 | 12 | Way objects hold allocators unclear | NAD |
| 20.1.5 | 197 | max_size() underspecified | Open |
| 20.1.5 | 199 | What does allocate(0) return? | TC |
| 20.1.5 | 258 | Missing allocator requirement | Open |
| 20.1.5 | 274 | a missing/impossible allocator requirement | WP |
| 20.1.5 | 277 | Normative encouragement in allocator requirements unclear | NAD |
| 20.1.5 | 350 | allocator<>::address | NAD Future |
| 20.1.5 | 401 | incorrect type casts in table 32 in lib.allocator.requirements | Open |
| 20.1.5 | 402 | wrong new expression in [some_]allocator::construct | WP |
| 20.1.5 | 431 | Swapping containers with unequal allocators | Open |
| 20.2.2 | 181 | make_pair() unintended behavior | TC |
| 20.2.2 | 265 | std::pair::pair() effects overly restrictive | WP |
| 20.2.2 | 296 | Missing descriptions and requirements of pair operators | NAD |
| 20.2.2 | 348 | Minor issue with std::pair operator< | NAD Future |
| 20.2.2 | 353 | std::pair missing template assignment | NAD Future |
| 20.3 | 185 | Questionable use of term "inline" | WP |
| 20.3 | 351 | unary_negate and binary_negate: struct or class? | NAD |
| 20.3.1 | 257 | STL functional object and iterator inheritance. | NAD |
| 20.3.1 | 480 | unary_function and binary_function should have protected nonvirtual destructors | New |
| 20.3.6 | 109 | Missing binders for non-const sequence elements | WP |
| 20.3.6.2 | 362 | bind1st/bind2nd type safety | Open |
| 20.3.7 | 284 | unportable example in 20.3.7, p6 | WP |
| 20.3.8 | 297 | const_mem_fun_t<>::argument_type should be const T* | WP |
| 20.4.1.1 | 234 | Typos in allocator definition | WP |
| 20.4.1.1 | 350 | allocator<>::address | NAD Future |
| 20.4.1.1 | 400 | redundant type cast in lib.allocator.members | WP |
| 20.4.1.1 | 402 | wrong new expression in [some_]allocator::construct | WP |
| 20.4.3 | 425 | return value of std::get_temporary_buffer | Ready |
| 20.4.5 | 127 | auto_ptr<> conversion issues | TC |
| 20.4.5 | 249 | Return Type of auto_ptr::operator= | NAD |
| 20.4.5 | 463 | auto_ptr usability issues | New |
| 20.4.5.3 | 2 | Auto_ptr conversions effects incorrect | NAD |
| 21 | 7 | String clause minor problems | TC |
| 21 | 85 | String char types | NAD |
| 21 | 343 | Unspecified library header dependencies | NAD Future |
| 21.1.1 | 335 | minor issue with char_traits, table 37 | WP |
| 21.1.2 | 352 | missing fpos requirements | WP |
| 21.1.3.1 | 467 | char_traits::lt(), compare(), and memcmp() | New |
| 21.1.3.2 | 57 | Mistake in char_traits | TC |
| 21.3 | 4 | Basic_string size_type and difference_type should be implementation defined | NAD |
| 21.3 | 42 | String ctors specify wrong default allocator | TC |
| 21.3 | 83 | String::npos vs. string::max_size() | TC |
| 21.3 | 209 | basic_string declarations inconsistent | TC |
| 21.3 | 263 | Severe restriction on basic_string reference counting | WP |
| 21.3.1 | 86 | String constructors don't describe exceptions | TC |
| 21.3.1 | 301 | basic_string template ctor effects clause omits allocator argument | WP |
| 21.3.1 | 466 | basic_string ctor should prevent null pointer error | New |
| 21.3.4 | 104 | Description of basic_string::operator[] is unclear | NAD |
| 21.3.4 | 259 | basic_string::operator[] and const correctness | WP |
| 21.3.5 | 84 | Ambiguity with string::insert() | NAD |
| 21.3.5.2 | 88 | Inconsistency between string::insert() and string::append() | NAD |
| 21.3.5.4 | 88 | Inconsistency between string::insert() and string::append() | NAD |
| 21.3.5.4 | 89 | Missing throw specification for string::insert() and string::replace() | Dup |
| 21.3.5.4 | 377 | basic_string::insert and length_error | NAD |
| 21.3.5.5 | 27 | String::erase(range) yields wrong iterator | TC |
| 21.3.5.5 | 428 | string::erase(iterator) validity | WP |
| 21.3.5.6 | 89 | Missing throw specification for string::insert() and string::replace() | Dup |
| 21.3.5.6 | 368 | basic_string::replace has two "Throws" paragraphs | Open |
| 21.3.5.8 | 403 | basic_string::swap should not throw exceptions | WP |
| 21.3.6.4 | 141 | basic_string::find_last_of, find_last_not_of say pos instead of xpos | TC |
| 21.3.6.6 | 141 | basic_string::find_last_of, find_last_not_of say pos instead of xpos | TC |
| 21.3.6.8 | 5 | String::compare specification questionable | TC |
| 21.3.6.8 | 87 | Error in description of string::compare() | Dup |
| 21.3.7.9 | 25 | String operator<< uses width() value wrong | TC |
| 21.3.7.9 | 67 | Setw useless for strings | Dup |
| 21.3.7.9 | 90 | Incorrect description of operator >> for strings | TC |
| 21.3.7.9 | 91 | Description of operator>> and getline() for string<> might cause endless loop | WP |
| 21.3.7.9 | 211 | operator>>(istream&, string&) doesn't set failbit | TC |
| 21.3.7.9 | 435 | bug in DR 25 | Ready |
| 21.4 | 345 | type tm in <cwchar> | WP |
| 22 | 317 | Instantiation vs. specialization of facets | WP |
| 22.1.1 | 31 | Immutable locale values | TC |
| 22.1.1 | 37 | Leftover "global" reference | TC |
| 22.1.1 | 137 | Do use_facet and has_facet look in the global locale? | TC |
| 22.1.1 | 268 | Typo in locale synopsis | WP |
| 22.1.1 | 330 | Misleading "exposition only" value in class locale definition | NAD |
| 22.1.1 | 360 | locale mandates inefficient implementation | WP |
| 22.1.1 | 378 | locale immutability and locale::operator=() | Review |
| 22.1.1.1.1 | 21 | Codecvt_byname<> instantiations | TC |
| 22.1.1.1.1 | 30 | Wrong header for LC_* | TC |
| 22.1.1.1.1 | 121 | Detailed definition for ctype<wchar_t> specialization | NAD |
| 22.1.1.1.1 | 327 | Typo in time_get facet in table 52 | WP |
| 22.1.1.1.1 | 340 | interpretation of has_facet<Facet>(loc) | WP |
| 22.1.1.1.1 | 347 | locale::category and bitmask requirements | WP |
| 22.1.1.1.1 | 447 | Wrong template argument for time facets | Dup |
| 22.1.1.1.2 | 436 | are cv-qualified facet types valid facets? | WP |
| 22.1.1.3 | 14 | Locale::combine should be const | TC |
| 22.1.1.3 | 15 | Locale::name requirement inconsistent | TC |
| 22.1.1.3 | 452 | locale::combine should be permitted to generate a named locale | Review |
| 22.1.1.5 | 8 | Locale::global lacks guarantee | TC |
| 22.1.2 | 38 | Facet definition incomplete | TC |
| 22.1.3.2 | 391 | non-member functions specified as const | WP |
| 22.2 | 228 | Incorrect specification of "..._byname" facets | WP |
| 22.2 | 338 | is whitespace allowed between `-' and a digit? | WP |
| 22.2 | 439 | Should facets be copyable? | NAD |
| 22.2.1 | 339 | definition of bitmask type restricted to clause 27 | WP |
| 22.2.1 | 356 | Meaning of ctype_base::mask enumerators | Open |
| 22.2.1.1 | 473 | underspecified ctype calls | New |
| 22.2.1.1.2 | 126 | typos in Effects clause of ctype::do_narrow() | TC |
| 22.2.1.1.2 | 152 | Typo in scan_is() semantics | TC |
| 22.2.1.1.2 | 379 | nonsensical ctype::do_widen() requirement | WP |
| 22.2.1.1.2 | 417 | what does ctype::do_widen() return on failure | Open |
| 22.2.1.2 | 124 | ctype_byname<charT>::do_scan_is & do_scan_not return type should be const charT* | TC |
| 22.2.1.3.2 | 28 | Ctype<char>is ambiguous | TC |
| 22.2.1.3.2 | 153 | Typo in narrow() semantics | WP |
| 22.2.1.3.2 | 207 | ctype<char> members return clause incomplete | Dup |
| 22.2.1.3.2 | 236 | ctype<char>::is() member modifies facet | Dup |
| 22.2.1.4 | 16 | Bad ctype_byname<char> decl | TC |
| 22.2.1.4 | 138 | Class ctype_byname<char> redundant and misleading | NAD Future |
| 22.2.1.5 | 72 | Do_convert phantom member function | Dup |
| 22.2.1.5 | 75 | Contradiction in codecvt::length's argument types | TC |
| 22.2.1.5 | 76 | Can a codecvt facet always convert one internal character at a time? | WP |
| 22.2.1.5 | 382 | codecvt do_in/out result | Open |
| 22.2.1.5.2 | 10 | Codecvt<>::do unclear | Dup |
| 22.2.1.5.2 | 19 | "Noconv" definition too vague | TC |
| 22.2.1.5.2 | 24 | "do_convert" doesn't exist | TC |
| 22.2.1.5.2 | 33 | Codecvt<> mentions from_type | TC |
| 22.2.1.5.2 | 43 | Locale table correction | Dup |
| 22.2.1.5.2 | 74 | Garbled text for codecvt::do_max_length | TC |
| 22.2.1.5.2 | 302 | Need error indication from codecvt<>::do_length | NAD |
| 22.2.1.5.2 | 305 | Default behavior of codecvt<wchar_t, char, mbstate_t>::length() | WP |
| 22.2.1.5.2 | 380 | typos in codecvt tables 53 and 54 | WP |
| 22.2.1.5.2 | 381 | detection of invalid mbstate_t in codecvt | WP |
| 22.2.2 | 344 | grouping + showbase | NAD |
| 22.2.2.1.1 | 18 | Get(...bool&) omitted | TC |
| 22.2.2.1.1 | 275 | Wrong type in num_get::get() overloads | WP |
| 22.2.2.1.2 | 17 | Bad bool parsing | TC |
| 22.2.2.1.2 | 23 | Num_get overflow result | Open |
| 22.2.2.1.2 | 154 | Missing double specifier for do_get() | TC |
| 22.2.2.1.2 | 221 | num_get<>::do_get stage 2 processing broken | WP |
| 22.2.2.1.2 | 321 | Typo in num_get | WP |
| 22.2.2.1.2 | 358 | interpreting thousands_sep after a decimal_point | WP |
| 22.2.2.1.2 | 427 | stage 2 and rationale of DR 221 | Open |
| 22.2.2.1.2 | 459 | Requirement for widening in stage 2 is overspecification | Open |
| 22.2.2.2.1 | 359 | num_put<>::do_put (..., bool) undocumented | WP |
| 22.2.2.2.2 | 34 | True/falsename() not in ctype<> | TC |
| 22.2.2.2.2 | 231 | Precision in iostream? | WP |
| 22.2.2.2.2 | 282 | What types does numpunct grouping refer to? | WP |
| 22.2.2.2.2 | 361 | num_get<>::do_get (..., void*&) checks grouping | NAD |
| 22.2.3.1.2 | 20 | Thousands_sep returns wrong type | TC |
| 22.2.3.2 | 318 | Misleading comment in definition of numpunct_byname | WP |
| 22.2.5 | 248 | time_get fails to set eofbit | WP |
| 22.2.5.1 | 71 | Do_get_monthname synopsis missing argument | TC |
| 22.2.5.1 | 461 | time_get hard or impossible to implement | New |
| 22.2.5.3.2 | 164 | do_put() has apparently unused fill argument | TC |
| 22.2.6.2.2 | 328 | Bad sprintf format modifier in money_put<>::do_put() | WP |
| 22.2.6.3.1 | 374 | moneypunct::frac_digits returns int not unsigned | NAD |
| 22.2.6.3.2 | 325 | Misleading text in moneypunct<>::do_grouping | WP |
| 22.2.6.3.2 | 374 | moneypunct::frac_digits returns int not unsigned | NAD |
| 22.2.6.4 | 326 | Missing typedef in moneypunct_byname | NAD |
| 22.2.8 | 40 | Meaningless normative paragraph in examples | TC |
| 22.2.8 | 148 | Functions in the example facet BoolNames should be const | TC |
| 22.2.8 | 217 | Facets example (Classifying Japanese characters) contains errors | TC |
| 23 | 97 | Insert inconsistent definition | NAD |
| 23 | 180 | Container member iterator arguments constness has unintended consequences | NAD Future |
| 23 | 343 | Unspecified library header dependencies | NAD Future |
| 23 | 470 | accessing containers from their elements' special functions | New |
| 23.1 | 51 | Requirement to not invalidate iterators missing | TC |
| 23.1 | 179 | Comparison of const_iterators to iterators doesn't work | WP |
| 23.1 | 197 | max_size() underspecified | Open |
| 23.1 | 276 | Assignable requirement for container value type overly strict | WP |
| 23.1 | 279 | const and non-const iterators should have equivalent typedefs | NAD |
| 23.1 | 322 | iterator and const_iterator should have the same value type | WP |
| 23.1 | 371 | Stability of multiset and multimap member functions | Open |
| 23.1 | 446 | Iterator equality between different containers | Open |
| 23.1 | 479 | Container requirements and placement new | New |
| 23.1.1 | 130 | Return type of container::erase(iterator) differs for associative containers | Review |
| 23.1.1 | 139 | Optional sequence operation table description unclear | TC |
| 23.1.1 | 149 | Insert should return iterator to first element inserted | NAD Future |
| 23.1.1 | 151 | Can't currently clear() empty container | TC |
| 23.1.1 | 355 | Operational semantics for a.back() | WP |
| 23.1.1 | 438 | Ambiguity in the "do the right thing" clause | Review |
| 23.1.2 | 82 | Missing constant for set elements | NAD |
| 23.1.2 | 102 | Bug in insert range in associative containers | Dup |
| 23.1.2 | 103 | set::iterator is required to be modifiable, but this allows modification of keys | WP |
| 23.1.2 | 130 | Return type of container::erase(iterator) differs for associative containers | Review |
| 23.1.2 | 192 | a.insert(p,t) is inefficient and overconstrained | NAD |
| 23.1.2 | 215 | Can a map's key_type be const? | NAD |
| 23.1.2 | 224 | clear() complexity for associative containers refers to undefined N | TC |
| 23.1.2 | 233 | Insertion hints in associative containers | Open |
| 23.1.2 | 246 | a.insert(p,t) is incorrectly specified | Dup |
| 23.1.2 | 264 | Associative container insert(i, j) complexity requirements are not feasible. | WP |
| 23.1.2 | 316 | Vague text in Table 69 | WP |
| 23.1.2 | 354 | Associative container lower/upper bound requirements | WP |
| 23.1.2 | 451 | Associative erase should return an iterator | Dup |
| 23.2.1 | 101 | No way to free storage for vector and deque | NAD |
| 23.2.1.1 | 144 | Deque constructor complexity wrong | TC |