===================================================================
@@ -155,6 +155,7 @@
// Undefine.
#undef __allocator_base
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// To implement Option 3 of DR 431.
template<typename _Alloc, bool = __is_empty(_Alloc)>
struct __alloc_swap
===================================================================
@@ -588,6 +588,7 @@
basic_string&
operator=(basic_string&& __str)
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// NB: DR 1204.
this->swap(__str);
return *this;
@@ -2878,6 +2879,7 @@
// NB: (v)snprintf vs sprintf.
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 1261.
inline string
to_string(int __val)
@@ -2979,6 +2981,7 @@
stold(const wstring& __str, size_t* __idx = 0)
{ return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 1261.
inline wstring
to_wstring(int __val)
@@ -3055,6 +3058,7 @@
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 1182.
#ifndef _GLIBCXX_COMPATIBILITY_CXX0X
===================================================================
@@ -527,6 +527,7 @@
end(size_type __n) const
{ return const_local_iterator(*this, nullptr, __n, _M_bucket_count); }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 691.
const_local_iterator
cbegin(size_type __n) const
@@ -723,6 +724,7 @@
// Set number of buckets to be appropriate for container of n element.
void rehash(size_type __n);
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 1189.
// reserve, if present, comes from _Rehash_base.
===================================================================
@@ -781,7 +781,7 @@
sync(void)
{
// _GLIBCXX_RESOLVE_LIB_DEFECTS
- // DR60. Do not change _M_gcount.
+ // DR 60. Do not change _M_gcount.
int __ret = -1;
sentry __cerb(*this, true);
if (__cerb)
@@ -817,7 +817,7 @@
tellg(void)
{
// _GLIBCXX_RESOLVE_LIB_DEFECTS
- // DR60. Do not change _M_gcount.
+ // DR 60. Do not change _M_gcount.
pos_type __ret = pos_type(-1);
sentry __cerb(*this, true);
if (__cerb)
@@ -845,7 +845,7 @@
seekg(pos_type __pos)
{
// _GLIBCXX_RESOLVE_LIB_DEFECTS
- // DR60. Do not change _M_gcount.
+ // DR 60. Do not change _M_gcount.
// Clear eofbit per N3168.
this->clear(this->rdstate() & ~ios_base::eofbit);
sentry __cerb(*this, true);
@@ -884,7 +884,7 @@
seekg(off_type __off, ios_base::seekdir __dir)
{
// _GLIBCXX_RESOLVE_LIB_DEFECTS
- // DR60. Do not change _M_gcount.
+ // DR 60. Do not change _M_gcount.
// Clear eofbit per N3168.
this->clear(this->rdstate() & ~ios_base::eofbit);
sentry __cerb(*this, true);
===================================================================
@@ -3433,6 +3433,7 @@
__gnu_cxx::__ops::__iter_comp_iter(__comp));
}
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// N2722 + DR 915.
template<typename _Tp>
inline _Tp
===================================================================
@@ -75,6 +75,7 @@
_GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus < 201103L
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// See http://gcc.gnu.org/ml/libstdc++/2004-08/msg00167.html: in a
// nutshell, we are partially implementing the resolution of DR 187,
// when it's safe, i.e., the value_types are equal.
===================================================================
@@ -647,6 +647,7 @@
vector&
operator=(vector&& __x)
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// NB: DR 1204.
// NB: DR 675.
this->clear();
@@ -1184,6 +1185,7 @@
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 1182.
/// std::hash specialization for vector<bool>.
template<typename _Alloc>
===================================================================
@@ -943,6 +943,7 @@
deque&
operator=(deque&& __x) noexcept
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// NB: DR 1204.
// NB: DR 675.
this->clear();
===================================================================
@@ -98,6 +98,7 @@
// No explicit construct/copy/destroy for aggregate type.
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 776.
void
fill(const value_type& __u)
===================================================================
@@ -1556,6 +1556,7 @@
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 1182.
/// std::hash specialization for bitset.
template<size_t _Nb>
===================================================================
@@ -337,6 +337,7 @@
return *this;
}
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 934.
template<typename _Rep2 = rep>
typename enable_if<!treat_as_floating_point<_Rep2>::value,
@@ -446,6 +447,7 @@
return __cd(__lhs).count() / __cd(__rhs).count();
}
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 934.
template<typename _Rep1, typename _Period, typename _Rep2>
constexpr duration<typename __common_rep_type<_Rep1, typename
===================================================================
@@ -1571,6 +1571,7 @@
template<typename _Tp> std::complex<_Tp> acosh(const std::complex<_Tp>&);
template<typename _Tp> std::complex<_Tp> asinh(const std::complex<_Tp>&);
template<typename _Tp> std::complex<_Tp> atanh(const std::complex<_Tp>&);
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 595.
template<typename _Tp> _Tp fabs(const std::complex<_Tp>&);
@@ -1875,6 +1876,7 @@
}
// Forward declarations.
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 781.
template<typename _Tp> std::complex<_Tp> proj(const std::complex<_Tp>&);
@@ -1913,6 +1915,7 @@
{ return __complex_proj(__z); }
#endif
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 1137.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
===================================================================
@@ -109,6 +109,7 @@
wait_until(unique_lock<mutex>& __lock,
const chrono::time_point<_Clock, _Duration>& __atime)
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 887 - Sync unknown clock to known clock.
const typename _Clock::time_point __c_entry = _Clock::now();
const __clock_t::time_point __s_entry = __clock_t::now();
===================================================================
@@ -105,6 +105,7 @@
{ return this != &__other; }
};
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 890.
_GLIBCXX_CONST const error_category& system_category() noexcept;
_GLIBCXX_CONST const error_category& generic_category() noexcept;
@@ -140,6 +141,7 @@
clear() noexcept
{ assign(0, system_category()); }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 804.
template<typename _ErrorCodeEnum>
typename enable_if<is_error_code_enum<_ErrorCodeEnum>::value,
@@ -163,6 +165,7 @@
explicit operator bool() const noexcept
{ return _M_value != 0 ? true : false; }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 804.
private:
friend class hash<error_code>;
@@ -213,6 +216,7 @@
_M_cat = &__cat;
}
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 804.
template<typename _ErrorConditionEnum>
typename enable_if<is_error_condition_enum
@@ -238,6 +242,7 @@
explicit operator bool() const noexcept
{ return _M_value != 0 ? true : false; }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 804.
private:
int _M_value;
@@ -357,6 +362,7 @@
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 1182.
/// std::hash specialization for error_code.
template<>
===================================================================
@@ -216,6 +216,7 @@
operator>=(thread::id __x, thread::id __y) noexcept
{ return !(__x < __y); }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 889.
/// std::hash specialization for thread::id.
template<>
===================================================================
@@ -879,6 +879,7 @@
const tuple<_UElements...>& __u)
{ return !(__t < __u); }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// NB: DR 705.
template<typename... _Elements>
constexpr tuple<typename __decay_and_strip<_Elements>::__type...>
===================================================================
@@ -1845,6 +1845,7 @@
bool _IsFunction = is_function<_Up>::value>
struct __decay_selector;
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// NB: DR 705.
template<typename _Up>
struct __decay_selector<_Up, false, false>
===================================================================
@@ -718,6 +718,12 @@
<listitem><para>Change it to be a formatted output function (i.e. catch exceptions).
</para></listitem></varlistentry>
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#595">595</link>:
+ <emphasis>TR1/C++0x: fabs(complex<T>) redundant / wrongly specified</emphasis>
+ </term>
+ <listitem><para>Change the return type of fabs(complex) to T.
+ </para></listitem></varlistentry>
+
<varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#596">596</link>:
<emphasis>27.8.1.3 Table 112 omits "a+" and "a+b" modes</emphasis>
</term>
@@ -761,6 +767,12 @@
<listitem><para>Implement the straightforward resolution.
</para></listitem></varlistentry>
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#705">705</link>:
+ <emphasis>type-trait decay incompletely specified</emphasis>
+ </term>
+ <listitem><para>Strip cv qualification from std::decay.
+ </para></listitem></varlistentry>
+
<varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#761">761</link>:
<emphasis>unordered_map needs an at() member function</emphasis>
</term>
@@ -785,6 +797,12 @@
<listitem><para>In C++11 mode, add std::proj.
</para></listitem></varlistentry>
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#804">804</link>:
+ <emphasis>Some problems with classes error_code/error_condition</emphasis>
+ </term>
+ <listitem><para>Store and compare error_category by pointer rather than reference.
+ </para></listitem></varlistentry>
+
<varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#809">809</link>:
<emphasis>std::swap should be overloaded for array types</emphasis>
</term>
@@ -803,6 +821,55 @@
<listitem><para>The traditional HP / SGI return type and value is blessed
by the resolution of the DR.
</para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#889">889</link>:
+ <emphasis>thread::id comparisons</emphasis>
+ </term>
+ <listitem><para>Add hases for thread::id
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#890">890</link>:
+ <emphasis>Improving system_error initialization</emphasis>
+ </term>
+ <listitem><para>Initialize system_error with default constructed system_category and generic_category.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#934">934</link>:
+ <emphasis>duration is missing operator%</emphasis>
+ </term>
+ <listitem><para>Add modulus operator to duration: duration& operator%=(const duration& d).
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#1137">1137</link>:
+ <emphasis>Return type of conj and proj</emphasis>
+ </term>
+ <listitem><para>All specified overloads shall have a return type which is the nested value_type
+ of the effectively cast arguments.</para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#1182">1182</link>:
+ <emphasis>Unfortunate hash dependencies</emphasis>
+ </term>
+ <listitem><para>Add many more hash specializations.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#1189">1189</link>:
+ <emphasis>Awkward interface for changing the number of buckets in an unordered associative container</emphasis>
+ </term>
+ <listitem><para>Add a new reserve method to the unordered associateve containers.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#1204">1204</link>:
+ <emphasis>Global permission to move</emphasis>
+ </term>
+ <listitem><para>Provide global permission to move
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#1261">1261</link>:
+ <emphasis>Insufficent overloads for to_string and to_wstring</emphasis>
+ </term>
+ <listitem><para>Add new overloads for to_string and to_wstring for many new fundamental integral
+ and floating point types.</para></listitem></varlistentry>
+
</variablelist>
</section>