Implement LWG-3887 Version macro for `allocate_at_least` (#3589)

This commit is contained in:
A. Jiang 2023-03-29 03:13:04 +08:00 коммит произвёл GitHub
Родитель df2af9eddf
Коммит f00f51ed36
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 5 добавлений и 9 удалений

Просмотреть файл

@ -1694,11 +1694,7 @@ _EMIT_STL_ERROR(STL1004, "C++98 unexpected() is incompatible with C++23 unexpect
// C++23
#if _HAS_CXX23
#define __cpp_lib_adaptor_iterator_pair_constructor 202106L
#ifdef __cpp_lib_concepts
#define __cpp_lib_allocate_at_least 202106L
#endif // __cpp_lib_concepts
#define __cpp_lib_allocate_at_least 202302L
#define __cpp_lib_associative_heterogeneous_erasure 202110L
#define __cpp_lib_bind_back 202202L
#define __cpp_lib_byteswap 202110L

Просмотреть файл

@ -42,13 +42,13 @@ STATIC_ASSERT(__cpp_lib_algorithm_iterator_requirements == 202207L);
#endif
#endif
#if _HAS_CXX23 && defined(__cpp_lib_concepts) // TRANSITION, GH-395
#if _HAS_CXX23
#ifndef __cpp_lib_allocate_at_least
#error __cpp_lib_allocate_at_least is not defined
#elif __cpp_lib_allocate_at_least != 202106L
#error __cpp_lib_allocate_at_least is not 202106L
#elif __cpp_lib_allocate_at_least != 202302L
#error __cpp_lib_allocate_at_least is not 202302L
#else
STATIC_ASSERT(__cpp_lib_allocate_at_least == 202106L);
STATIC_ASSERT(__cpp_lib_allocate_at_least == 202302L);
#endif
#else
#ifdef __cpp_lib_allocate_at_least