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.
+ * include/std/version [!__STRICT_ANSI__]
+ (__cpp_lib_uncaught_exceptions): Define as long integer.
+ [__cplusplus >= 201703L] (__cpp_lib_any)
+ (__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions)
+ (__cpp_lib_variant): Define for C++17.
+ [__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define
+ as long integer.
+ * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
+ integer.
+
* doc/xml/manual/status_cxx2020.xml: Update P1123R0 status.
2019-01-12 Jonathan Wakely <jwakely@redhat.com>
<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
+#if __cplusplus >= 201703L
+# define __cpp_lib_raw_memory_algorithms 201606L
+
template <typename _ForwardIterator>
inline void
uninitialized_default_construct(_ForwardIterator __first,
__count, __result);
return {__res.first.base(), __res.second};
}
-#endif
+#endif // C++17
#if __cplusplus >= 201103L
template<typename _Tp, typename _Up, typename _Allocator>
#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;
} // namespace __variant
} // namespace __detail
-#define __cpp_lib_variant 201603
+#define __cpp_lib_variant 201606L
template<typename... _Types> class tuple;
template<typename... _Types> class variant;
#if !defined(__STRICT_ANSI__)
// gnu++03
-# define __cpp_lib_uncaught_exceptions 201411
+# define __cpp_lib_uncaught_exceptions 201411L
#endif
#if __cplusplus >= 201103L
#if __cplusplus >= 201703L
// c++17
#define __cpp_lib_addressof_constexpr 201603
+#define __cpp_lib_any 201606L
#define __cpp_lib_apply 201603
#define __cpp_lib_array_constexpr 201603
#define __cpp_lib_as_const 201510
#define __cpp_lib_node_extract 201606
#define __cpp_lib_nonmember_container_access 201411
#define __cpp_lib_not_fn 201603
-#define __cpp_lib_optional 201603
+#define __cpp_lib_optional 201606L
+#define __cpp_lib_raw_memory_algorithms 201606L
#define __cpp_lib_sample 201603
#ifdef _GLIBCXX_HAS_GTHREADS
# define __cpp_lib_scoped_lock 201703
#define __cpp_lib_shared_ptr_weak_type 201606
#define __cpp_lib_string_view 201603
#define __cpp_lib_type_trait_variable_templates 201510L
+#define __cpp_lib_uncaught_exceptions 201411L
#define __cpp_lib_unordered_map_insertion 201411
#define __cpp_lib_unordered_map_try_emplace 201411
+#define __cpp_lib_variant 201606L
#define __cpp_lib_void_t 201411
#if __cplusplus > 201703L
_GLIBCXX17_DEPRECATED
bool uncaught_exception() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__));
-#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++17 or gnu++98
-#define __cpp_lib_uncaught_exceptions 201411
+#if __cplusplus >= 201703L || !defined(__STRICT_ANSI__) // c++17 or gnu++98
+#define __cpp_lib_uncaught_exceptions 201411L
/// The number of uncaught exceptions.
int uncaught_exceptions() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__));
#endif