+2019-05-17 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/status_cxx2020.xml: Update P0608R3, P0777R1, and
+ P1165R1 entries.
+ * doc/html/*: Regenerate.
+ * include/std/tuple (make_from_tuple): Use remove_reference_t instead
+ of decay_t (P0777R1).
+
2019-05-17 François Dumont <fdumont@gcc.gnu.org>
Move from state of allocators (LWG2593)
</h5></div></div></div><p></p><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_insert.info"></a>
Description
</h6></div></div></div><p>This test inserts a number of values with keys from an arbitrary
- text ([ wickland96thirty ]) into a container
+ text ([wickland96thirty]) into a container
using <code class="function">insert</code> . It measures the average time
for <code class="function">insert</code> as a function of the number of
values inserted.</p><p>The test checks the effect of different underlying
</h5></div></div></div><p></p><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="branch.text_lor_find.info"></a>
Description
</h6></div></div></div><p>This test inserts a number of values with keys from an
- arbitrary text ([ wickland96thirty ]) into
+ arbitrary text ([wickland96thirty]) into
a container, then performs a series of finds using
<code class="function">find</code>. It is different than Tree-Based and
Trie-Based Text <code class="function">find</code> Find Timing Test in the
Description
</h6></div></div></div><p>This test inserts a number of pairs into a container. The
first item of each pair is a string from an arbitrary text
- [wickland96thirty], and
+ ([wickland96thirty]), and
the second is a uniform i.i.d.integer. The container is a
"multimap" - it considers the first member of each pair as a
primary key, and the second member of each pair as a secondary
Description
</h6></div></div></div><p>This test inserts a number of pairs into a container. The
first item of each pair is a string from an arbitrary text
- [wickland96thirty], and
+ ([wickland96thirty]), and
the second is a uniform integer. The container is a
"multimap" - it considers the first member of each pair as a
primary key, and the second member of each pair as a secondary
Description
</h6></div></div></div><p>This test inserts a number of pairs into a container. The
first item of each pair is a string from an arbitrary text
- [wickland96thirty], and
+ ([wickland96thirty]), and
the second is a uniform integer. The container is a
"multimap" - it considers the first member of each pair as a
primary key, and the second member of each pair as a secondary
Description
</h6></div></div></div><p>This test inserts a number of pairs into a container. The
first item of each pair is a string from an arbitrary text
- [wickland96thirty], and
+ ([wickland96thirty]), and
the second is a uniform integer. The container is a
"multimap" - it considers the first member of each pair as a
primary key, and the second member of each pair as a secondary
Description
</h6></div></div></div><p>This test inserts a number of pairs into a container. The
first item of each pair is a string from an arbitrary text
- [wickland96thirty], and
+ ([wickland96thirty]), and
the second is a uniform integer. The container is a
"multimap" - it considers the first member of each pair as a
primary key, and the second member of each pair as a secondary
Description
</h6></div></div></div><p>This test inserts a number of pairs into a container. The
first item of each pair is a string from an arbitrary text
- [wickland96thirty], and
+ ([wickland96thirty]), and
the second is a uniform integer. The container is a
"multimap" - it considers the first member of each pair as a
primary key, and the second member of each pair as a secondary
priority-queues container), there is a possible need for
different types of iterators for self-organizing containers:
the iterator concept seems overloaded to mean two different
- things (in some cases). <em><span class="remark"> XXX
- "ds_gen.html#find_range">Design::Associative
- Containers::Data-Structure Genericity::Point-Type and Range-Type
- Methods</span></em>.
+ things (in some cases).
</p><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="associative.iterators.using"></a>Using Point Iterators for Range Operations</h6></div></div></div><p>
Suppose <code class="classname">cntnr</code> is some associative
container, and say <code class="varname">c</code> is an object of
Α<sub>max</sub>, and the hash table maintains the
invariant that</p><p>Α<sub>min</sub> ≤ (number of
stored elements) / (hash-table size) ≤
- Α<sub>max</sub><em><span class="remark">load factor min max</span></em></p><p>Collision-check policies work in the opposite direction of
+ Α<sub>max</sub>
+
+ </p><p>Collision-check policies work in the opposite direction of
load-check policies. They focus on keeping the number of
collisions moderate and hoping that the size of the table will
not grow very large, instead of keeping a moderate load-factor
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0768r1.pdf" target="_top">
P0768R1
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Treating Unnecessary <code class="code">decay</code> </td><td align="left">
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Treating Unnecessary <code class="code">decay</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0777r1.pdf" target="_top">
P0777R1
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code"><span></code> </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code"><span></code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf" target="_top">
P0122R7
</a>
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0602r4.html" target="_top">
P0602R4
</a>
- </td><td align="center"> 8.3 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> A sane <code class="code">variant</code> converting constructor </td><td align="left">
+ </td><td align="center"> 8.3 </td><td align="left"> </td></tr><tr><td align="left"> A sane <code class="code">variant</code> converting constructor </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html" target="_top">
P0608R3
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">visit<R></code>: Explicit Return Type for <code class="code">visit</code> </td><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">visit<R></code>: Explicit Return Type for <code class="code">visit</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0655r1.pdf" target="_top">
P0655R1
</a>
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf" target="_top">
P1148R0
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Make stateful allocator propagation more consistent for <code class="code">operator+(basic_string)</code> </td><td align="left">
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Make stateful allocator propagation more consistent for <code class="code">operator+(basic_string)</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html" target="_top">
P1165R1
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </td><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html" target="_top">
P1209R0
</a>
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf" target="_top">
P1285R0
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left"> Missing feature test macros </td><td align="left">
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Well-behaved interpolation for numbers and pointers </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html" target="_top">
+ P0811R3
+ </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left"> Missing feature test macros </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html" target="_top">
P1353R0
</a>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Treating Unnecessary <code>decay</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0777r1.pdf">
P0777R1
</link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 9.1 </entry>
<entry />
</row>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> A sane <code>variant</code> converting constructor </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0608r3.html">
P0608R3
</link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 10.1 </entry>
<entry />
</row>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Make stateful allocator propagation more consistent for <code>operator+(basic_string)</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html">
P1165R1
</link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 10.1 </entry>
<entry />
</row>
{
return __make_from_tuple_impl<_Tp>(
std::forward<_Tuple>(__t),
- make_index_sequence<tuple_size_v<decay_t<_Tuple>>>{});
+ make_index_sequence<tuple_size_v<remove_reference_t<_Tuple>>>{});
}
#endif // C++17