From 96189df366ab0d5e75e10aa69bf65e56d8e429dd Mon Sep 17 00:00:00 2001
From: Jonathan Wakely
diff --git a/libstdc++-v3/doc/html/manual/bugs.html b/libstdc++-v3/doc/html/manual/bugs.html index 439df7dc6fe..ac9b5dcdb47 100644 --- a/libstdc++-v3/doc/html/manual/bugs.html +++ b/libstdc++-v3/doc/html/manual/bugs.html @@ -15,227 +15,216 @@ The links are to the specific defect reports from a partial copy of the Issues List. You can read the full version online at the ISO C++ - Committee homepage, linked to on the - GCC "Readings" - page. If - you spend a lot of time reading the issues, we recommend downloading - the ZIP file and reading them locally. -
- (NB: partial copy means that not all - links within the lwg-*.html pages will work. Specifically, - links to defect reports that have not been accorded full DR - status will probably break. Rather than trying to mirror the - entire issues list on our overworked web server, we recommend - you go to the LWG homepage instead.) + Committee homepage.
If a DR is not listed here, we may simply not have gotten to
it yet; feel free to submit a patch. Search the include/bits
and src directories for appearances of
_GLIBCXX_RESOLVE_LIB_DEFECTS
for examples
of style. Note that we usually do not make changes to the
- code until an issue has reached DR status.
-
This should be two overloaded functions rather than a single function. -
Apparently extracting Boolean values was messed up... -
If codecvt::do_in
returns noconv
there are
no changes to the values in [to, to_limit)
.
-
Re-opening a file stream does not clear the state flags. -
Implement the proposed resolution. -
Padding issues. -
An instance of ios_base::failure
is constructed instead.
-
The return type is the previous state of synchronization. -
These members functions are declared private
and are
thus inaccessible. Specifying the correct semantics of
"copying stream state" was deemed too complicated.
-
This DR made many widespread changes to basic_istream
and basic_ostream
all of which have been implemented.
-
Make the policy consistent with that of formatted input, unformatted input, and formatted output. -
And they do now. An editing glitch in the last item in the list of [27.6.1.2.3]/7. -
The text of the standard was gibberish. Typos gone rampant. -
Change the first parameter to stateT&
and implement
the new effects paragraph.
-
Safety checks on the size of the string should test against
max_size()
rather than npos
.
-
The effect contain isspace(c,getloc())
which must be
replaced by isspace(c,is.getloc())
.
-
They behave as a formatted input function and as an unformatted
input function, respectively (except that getline
is
not required to set gcount
).
-
For associative containers where the value type is the same as
the key type, both iterator
and const_iterator
are constant iterators.
-
The binder1st
and binder2nd
didn't have an
operator()
taking a non-const parameter.
-
This was not a const member function. Note that the DR says to replace the function with a const one; we have instead provided an overloaded version with identical contents. -
num_put::put()
was overloaded on the wrong types.
-
Same as 117, but for num_get::get()
.
-
These functions set failbit
on error now.
-
Make member erase
return iterator for set
, multiset
, map
, multimap
.
-
seekp
should only set the output stream, and
seekg
should only set the input stream.
-
op<<
with a const char*
was
calculating an incorrect number of characters to write.
-
Grow efficiently the internal array object. -
Quite complex to summarize... -
This function used to take its arguments as reference-to-const, now it copies them (pass by value). -
Yes, it can, specifically if EOF is reached while skipping whitespace. -
If nothing is extracted into the string, op>>
now
sets failbit
(which can cause an exception, etc., etc.).
-
Both set
and multiset
were missing
overloaded find, lower_bound, upper_bound, and equal_range functions
for const instances.
-
For conversion from a floating-point type, str.precision()
is specified in the conversion specification.
-
Implement N1780, first check before then check after, insert as close to hint as possible. -
The declaration of reverse_iterator
lists a default constructor.
However, no specification is given what this constructor should do.
-
Add a helper for forward_iterator/output_iterator, fix the existing one for input_iterator/output_iterator to not rely on Assignability. -
Store a null character only if the character array has a non-zero size. -
This nested typedef was originally not specified. -
Make the copy constructor and copy-assignment operator declarations public in gslice_array, indirect_array, mask_array, slice_array; provide definitions. -
The default ctor would build its members from copies of temporaries; now it simply uses their respective default ctors. -
The bad_
* classes no longer have destructors (they
are trivial), since no description of them was ever given.
-
The typedefs it inherits from its base classes can't be used, since
(for example) basic_iostream<T>::traits_type
is ambiguous.
-
Similar to 118. -
Add global functions with two template parameters. (NB: not added for now a templated assignment operator) -
If (this == &rhs)
do nothing.
-
If (this == &x)
do nothing.
-
Basically, compare the input character to
is.widen(0)
and is.widen(1)
.
-
Do not specify what codecvt<wchar_t, char,
mbstate_t>::do_length
must return.
-
Change the format string to "%.0Lf". -
Add const overloads of is_open
.
-
Add the real(T)
and imag(T)
members; in C++11 mode, also adjust the existing
real()
and imag()
members and
free functions.
-
Change it to return a const T&
.
-
Implement the proposed resolution. -
Replace "new" with "::new".
Tweak the debug-mode checks in _Safe_iterator. -
Have open
clear the error flags.
Implement Option 3, as per N1599. -
Implement the resolution, beyond DR 169. -
Add three overloads, taking fewer template arguments. -
Implement the resolution, basically cast less. -
Change istreambuf_iterator::reference
in C++11 mode.
-
Don't fail if the next pointer is null and newoff is zero. -
Initialize cerr tied to cout and wcerr tied to wcout. -
Add data()
to std::vector
and
at(const key_type&)
to std::map
.
-
Change lt
.
-
Fix the parameters.
Use &value. -
In case of input_iterator/output_iterator rely on Assignability of input_iterator' value_type. -
We were almost doing the right thing, just use std::move in adjacent_difference. -
Add an auto_ptr<void> specialization. -
Follow the straightforward proposed resolution. -
In C++11 mode, remove the pow(float,int), etc., signatures. -
Change it to be a formatted output function (i.e. catch exceptions). -
Add the missing modes to fopen_mode. -
Implement the simple resolution. -
Add the missing operations. -
In C++11 mode add cbegin(size_type) and cend(size_type) to the unordered containers. -
Add it, consistently with the discussion. -
Make the member functions table and classic_table public. -
Implement the straightforward resolution. -
In C++11 mode, add at() and at() const. -
Implement the int -> size_t replacements. -
In C++11 mode, remove assign, add fill. -
In C++11 mode, add std::proj. -
Add the overload. -
Update / add the signatures. -
The traditional HP / SGI return type and value is blessed by the resolution of the DR. -
Return the end of the filled range. -
result_of
Correctly decay types in signature of std::async
.
-
is_destructible
underspecified
Handle non-object types. -
Reorder enumerators. -
Add additional overloads. -
std::function
swaps
Add noexcept
to swap functions.
-
Respect propagation trait for move assignment. -
Add noexcept to the comparison operators. -
Fix signatures. -
Use the referenceable type concept. -
Change the reference
type.
-
Define and use is_always_equal
even for C++11.
-
unique_ptr
for array does not support cv qualification conversion of actual argument
Adjust constraints to allow safe conversions. -
raw_storage_iterator
Add assignment operator taking an rvalue. -
std::function
ambiguity
Constrain the constructor to only accept callable types. -
common_type
trait produces reference types
Use decay
for the result type.
-
noexcept
specification in type_index
Add noexcept
-
error_category
default constructor
Declare a public constexpr constructor. -
allocator_traits::max_size
missing noexcept
Add noexcept
.
-
vector<bool>
is missing emplace
and emplace_back
member functions
Add emplace
and emplace_back
member functions.
-
std::abs(0u)
is unclear
Move all declarations to a common header and remove the
generic abs
which accepted unsigned arguments.
-
is_*[copy/move]_[constructible/assignable]
unclear for non-referencable types
Use the referenceable type concept. -
tuple_size
for const pair
request <tuple>
header
The tuple_size
and tuple_element
partial specializations are defined in <utility>
which
is included by <array>
.
-
std::addressof
should be constexpr
Use __builtin_addressof
and add
constexpr
to addressof
for C++17 and later.
-
tuple_size
should always derive from integral_constant<size_t, N>
Update definitions of the partial specializations for const and volatile types. -
Use perfect forwarding for right operand. -
regex_match()/regex_search()
with match_results
should forbid temporary strings
Add deleted overloads for rvalue strings. -
regex_iterator/regex_token_iterator
should forbid temporary regexes
Add deleted constructors. -
shared_ptr
's constructor from unique_ptr
should be constrained
Constrain the constructor to require convertibility. -
shared_ptr
's get_deleter()
should use addressof()
Use addressof
.
-
std::function
needs more noexcept
Add noexcept
to the assignment and comparisons.
-
packaged_task(allocator_arg_t, const Allocator&, F&&)
should neither be constrained nor explicit
Remove explicit
from the constructor.
-
unique_ptr
and shared_ptr
Create empty an shared_ptr
from an empty
unique_ptr
.
-
apply
does not work with member pointers
Use mem_fn
for member pointers.
-
seed_seq::size()
should be noexcept
Add noexcept
.
-
Define the typedefs. -
call_once()
shouldn't DECAY_COPY()
Remove indirection through call wrapper that made copies
of arguments and forward arguments straight to std::invoke
.
-
raw_storage_iterator::base()
member
Add the base()
member function.
-
Make noexcept
specifications conditional.
-
Remove unused overloads. -