------------------------------------------------- -----------------
``__cpp_lib_shared_mutex`` ``201505L``
------------------------------------------------- -----------------
- ``__cpp_lib_shared_ptr_arrays`` *unimplemented*
+ ``__cpp_lib_shared_ptr_arrays`` ``201611L``
------------------------------------------------- -----------------
``__cpp_lib_shared_ptr_weak_type`` ``201606L``
------------------------------------------------- -----------------
# if !defined(_LIBCPP_HAS_NO_THREADS)
# define __cpp_lib_shared_mutex 201505L
# endif
-// # define __cpp_lib_shared_ptr_arrays 201611L
+# define __cpp_lib_shared_ptr_arrays 201611L
# define __cpp_lib_shared_ptr_weak_type 201606L
# define __cpp_lib_string_view 201606L
// # define __cpp_lib_to_chars 201611L
# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_shared_ptr_arrays
-# error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
-# endif
-# if __cpp_lib_shared_ptr_arrays != 201611L
-# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
-# endif
-# else // _LIBCPP_VERSION
-# ifdef __cpp_lib_shared_ptr_arrays
-# error "__cpp_lib_shared_ptr_arrays should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_shared_ptr_arrays
+# error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
+# endif
+# if __cpp_lib_shared_ptr_arrays != 201611L
+# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
# endif
# ifndef __cpp_lib_shared_ptr_weak_type
# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++2a"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_shared_ptr_arrays
-# error "__cpp_lib_shared_ptr_arrays should be defined in c++2a"
-# endif
-# if __cpp_lib_shared_ptr_arrays != 201611L
-# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++2a"
-# endif
-# else // _LIBCPP_VERSION
-# ifdef __cpp_lib_shared_ptr_arrays
-# error "__cpp_lib_shared_ptr_arrays should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_shared_ptr_arrays
+# error "__cpp_lib_shared_ptr_arrays should be defined in c++2a"
+# endif
+# if __cpp_lib_shared_ptr_arrays != 201611L
+# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++2a"
# endif
# ifndef __cpp_lib_shared_ptr_weak_type
# endif
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_shared_ptr_arrays
-# error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
-# endif
-# if __cpp_lib_shared_ptr_arrays != 201611L
-# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
-# endif
-# else // _LIBCPP_VERSION
-# ifdef __cpp_lib_shared_ptr_arrays
-# error "__cpp_lib_shared_ptr_arrays should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_shared_ptr_arrays
+# error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
+# endif
+# if __cpp_lib_shared_ptr_arrays != 201611L
+# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
# endif
# ifndef __cpp_lib_shared_ptr_weak_type
# endif
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_shared_ptr_arrays
-# error "__cpp_lib_shared_ptr_arrays should be defined in c++2a"
-# endif
-# if __cpp_lib_shared_ptr_arrays != 201611L
-# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++2a"
-# endif
-# else // _LIBCPP_VERSION
-# ifdef __cpp_lib_shared_ptr_arrays
-# error "__cpp_lib_shared_ptr_arrays should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_shared_ptr_arrays
+# error "__cpp_lib_shared_ptr_arrays should be defined in c++2a"
+# endif
+# if __cpp_lib_shared_ptr_arrays != 201611L
+# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++2a"
# endif
# ifndef __cpp_lib_shared_ptr_weak_type
"headers": ["memory"],
}, {
"name": "__cpp_lib_shared_ptr_arrays",
- "values": { "c++17": int(201611) },
+ "values": { "c++17": int(201611) }, # "c++20": int(201707) # Enable this when we support arrays in std::make_shared
"headers": ["memory"],
- "unimplemented": True,
}, {
"name": "__cpp_lib_memory_resource",
"values": { "c++17": int(201603) },