+2019-05-23 Jonathan Wakely <jwakely@redhat.com>
+
+ Backported from mainline
+ 2019-01-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
+ status.
+ * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
+ Define.
+ * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
+ changes are supported.
+ * include/std/optional (__cpp_lib_optional): Likewise.
+ * include/std/variant (__cpp_lib_variant): Likewise.
+
2019-05-08 Jonathan Wakely <jwakely@redhat.com>
Backport from mainline
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html" target="_top">
P0040R3
</a>
- </td><td align="center"> 7.1 </td><td align="left"><code class="code"> </code></td></tr><tr><td align="left"> <code class="code">shared_ptr::weak_type</code></td><td align="left">
+ </td><td align="center"> 7.1 </td><td align="left"><code class="code">__cpp_lib_raw_memory_algorithms >= 201606L</code></td></tr><tr><td align="left"> <code class="code">shared_ptr::weak_type</code></td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html" target="_top">
P0163R0
</a>
P0067R5
</a>
</td><td align="center"> 8 (only integral types supported) </td><td align="left"><code class="code"> __has_include(<charconv>) </code>
- <code class="code"> __cpp_lib_to_chars >= 201611 </code></td></tr></tbody></table></div></div><br class="table-break" /><p>
+ <code class="code"> __cpp_lib_to_chars >= 201611 </code></td></tr><tr><td align="left"> Homogeneous interface for variant, any and optional </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf" target="_top">
+ P0032R3
+ </a>
+ </td><td align="center"> 7.1 </td><td align="left">
+ <code class="code"> __cpp_lib_any >= 201606 </code>,
+ <code class="code"> __cpp_lib_optional >= 201606 </code>,
+ <code class="code"> __cpp_lib_variant >= 201606 </code>
+ </td></tr><tr><td align="left"> Making Optional Greater Equal Again </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf" target="_top">
+ P0307R2
+ </a>
+ </td><td align="center"> 7.1 </td><td align="left"> <code class="code"> __cpp_lib_optional >= 201606 </code> </td></tr></tbody></table></div></div><br class="table-break" /><p>
Note 1: This feature is supported in GCC 7.1 and 7.2 but before GCC 7.3 the
<code class="code">__cpp_lib</code> macro is not defined, and compilation will fail if the
header is included without using <code class="option">-std</code> to enable C++17 support.
</link>
</entry>
<entry align="center"> 7.1 </entry>
- <entry><code> </code></entry>
+ <entry><code>__cpp_lib_raw_memory_algorithms >= 201606L</code></entry>
</row>
<row>
<code> __cpp_lib_to_chars >= 201611 </code></entry>
</row>
+ <row>
+ <entry> Homogeneous interface for variant, any and optional </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf">
+ P0032R3
+ </link>
+ </entry>
+ <entry align="center"> 7.1 </entry>
+ <entry>
+ <code> __cpp_lib_any >= 201606 </code>,
+ <code> __cpp_lib_optional >= 201606 </code>,
+ <code> __cpp_lib_variant >= 201606 </code>
+ </entry>
+ </row>
+
+ <row>
+ <entry> Making Optional Greater Equal Again </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf">
+ P0307R2
+ </link>
+ </entry>
+ <entry align="center"> 7.1 </entry>
+ <entry> <code> __cpp_lib_optional >= 201606 </code> </entry>
+ </row>
</tbody>
</tgroup>
#endif
#if __cplusplus > 201402L
+# define __cpp_lib_raw_memory_algorithms 201606L
+
template <typename _ForwardIterator>
inline void
uninitialized_default_construct(_ForwardIterator __first,
#endif
}
-#define __cpp_lib_any 201603
+#define __cpp_lib_any 201606L
/**
* @brief A type-safe container of any type.
* @{
*/
-#define __cpp_lib_optional 201603
+#define __cpp_lib_optional 201606L
template<typename _Tp>
class optional;
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#define __cpp_lib_variant 201603
+#define __cpp_lib_variant 201606L
template<typename... _Types> class tuple;
template<typename... _Types> class variant;