llvm-project/libcxx/include
Marek Kurdej 0324b46cd8 [libc++] [C++2b] [P2162] Allow inheritance from std::variant.
This patch changes the variant even in pre-C++2b.
It should not break anything, only allow use cases that didn't work previously.

Notes:
 `__as_variant` is used in `__visitation::__variant::__visit_alt`, but I haven't used it in `__visitation::__variant::__visit_alt_at`.
That's because it is used only in `__visit_value_at`, which in turn is always used on variant specializations (that's in comparison operators).

* https://wg21.link/P2162

Reviewed By: ldionne, #libc, Quuxplusone

Differential Revision: https://reviews.llvm.org/D97394
2021-03-25 18:20:50 +01:00
..
__memory [libc++] Rationalize our treatment of contiguous iterators and __unwrap_iter(). 2021-02-03 16:28:38 -05:00
__support [libc++][AIX] Initial patch to unblock the libc++ build on AIX 2021-03-24 22:13:20 +00:00
experimental [libc++] Update and normalize the "all the headers" tests. 2020-12-03 15:01:38 -05:00
ext [libc++] Remove workarounds for missing rvalue references 2020-08-12 12:02:28 -04:00
CMakeLists.txt [SystemZ][z/OS] Missing locale functions libc++ 2021-03-08 19:32:33 +00:00
__availability [libc++] Make feature-test macros consistent with availability macros 2021-02-04 11:40:22 -05:00
__bit_reference [libc++] Introduce __bits 2021-01-22 21:20:23 +01:00
__bits [NFC][libc++] Fix _LIBCPP_HAS_BITSCAN64 usage. 2021-02-23 08:13:49 +01:00
__bsd_locale_defaults.h
__bsd_locale_fallbacks.h
__config [libc++][AIX] Initial patch to unblock the libc++ build on AIX 2021-03-24 22:13:20 +00:00
__config_site.in [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent 2021-01-19 14:15:48 -05:00
__debug [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
__errc
__functional_03 [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
__functional_base [libc++] [LWG2993] reference_wrapper<T> conversion from U&& 2021-02-09 15:50:25 -05:00
__functional_base_03 [libc++] ADL-proof <functional> by adding _VSTD:: qualification on calls. 2020-12-14 12:08:34 -05:00
__hash_table [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
__libcpp_version [libcxx] Update include/__libcpp_version to match include/__config 2021-01-27 15:16:55 +00:00
__locale [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
__mutex_base [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
__node_handle
__nullptr
__split_buffer Add noreturn attribute to non-returning functions 2021-03-10 14:35:50 -08:00
__sso_allocator [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
__std_stream
__string [libc++] [C++20] [P0482] Add missing tests and synopses for char8_t. 2021-03-23 18:45:31 +01:00
__threading_support [libcxx] Implement semaphores for windows 2021-03-05 10:48:59 +02:00
__tree [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
__tuple Refactor default constructor SFINAE in pair and tuple. 2019-09-30 20:55:30 +00:00
__undef_macros
algorithm [libc++] Further improve the contiguous-iterator story, and fix some bugs. 2021-02-05 15:18:04 -05:00
any [libc++] Include <__config> first in all standard headers. 2021-03-22 19:01:18 -04:00
array [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
atomic [libc++] Fix for the Bug 41784 2021-02-01 10:14:22 -05:00
barrier [libc++] [docs] Mark P1865 as complete since 11.0 as it was implemented together with P1135. Fix synopses in <barrier> and <latch>. 2020-12-06 15:36:52 +01:00
bit [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
bitset [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
cassert
ccomplex
cctype
cerrno
cfenv
cfloat
charconv [libc++] Include C++ headers, not C headers, in <charconv>. 2020-12-10 22:03:12 -05:00
chrono [libc++] Change `std::numeric_limits` to just `numeric_limits` in <chrono>. 2021-02-15 16:12:10 -05:00
cinttypes
ciso646
climits
clocale
cmath [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
codecvt [libc++] [P0482] [C++20] Implement missing bits for codecvt and codecvt_byname. 2020-12-02 09:01:58 +01:00
compare [libc++] Eliminate <compare>'s dependency on <array>. 2021-03-25 10:34:35 -04:00
complex [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
complex.h
concepts [libcxx] adds concept std::regular 2021-03-12 08:54:03 -08:00
condition_variable
csetjmp
csignal
cstdarg
cstdbool
cstddef Avoid using std::max_align_t in pre-C++11 mode 2020-04-04 01:38:41 +02:00
cstdint
cstdio Reland: Don't expose unavailable cstdio functions. 2020-04-16 12:51:08 -07:00
cstdlib Fix _LIBCPP_HAS_ definitions for Android. 2019-11-18 12:19:58 -08:00
cstring
ctgmath
ctime [libc++] Avoid including <sys/cdefs.h> on non-Apple platforms in <ctime> 2020-09-02 18:11:26 -04:00
ctype.h
cwchar
cwctype
deque [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
errno.h
exception [libc++] Split allocator_traits and pointer_traits out of <memory> 2020-12-14 16:13:57 -05:00
execution [pstl][libc++] Provide uglified header names for interface headers 2019-08-06 21:11:24 +00:00
fenv.h
filesystem [libcxx] Avoid intermediate string objects for substrings in windows operator/= 2021-03-11 19:34:59 +02:00
float.h
format [libc++][format] Enable format_error on older compilers. 2021-02-11 19:11:20 +01:00
forward_list [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
fstream [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent 2021-01-19 14:15:48 -05:00
functional [libc++] Move __libcpp_erase_if_container into <iterator>, and ADL-proof it. 2021-03-22 11:13:33 -04:00
future [libc++] Match declaration for non-member function std::swap(std::packaged_task) with what standard specify 2021-03-24 22:33:32 +00:00
initializer_list
inttypes.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
iomanip [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
ios [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
iosfwd [libc++] [C++20] [P0482] Add missing tests and synopses for char8_t. 2021-03-23 18:45:31 +01:00
iostream
istream [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
iterator [libc++] [P1032] Misc constexpr bits in <iterator>, <string_view>, <tuple>, <utility>. 2021-03-25 10:34:35 -04:00
latch [libc++] [docs] Mark P1865 as complete since 11.0 as it was implemented together with P1135. Fix synopses in <barrier> and <latch>. 2020-12-06 15:36:52 +01:00
limits [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
limits.h
list [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
locale [libcxx] Check return value for asprintf() 2021-01-21 19:43:11 -05:00
locale.h [libc++] Move the #error message for no localization to <locale.h> 2020-10-28 09:49:37 -04:00
map [libc++] Move __libcpp_erase_if_container into <iterator>, and ADL-proof it. 2021-03-22 11:13:33 -04:00
math.h [libc++] Use builtins in more math.h functions. 2021-02-10 15:17:42 -05:00
memory [libc++] NFC: Normalize links to bug reports 2021-03-03 13:45:29 -05:00
module.modulemap [libc++] Implement format_error. 2021-01-28 18:02:53 +01:00
mutex [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
new [NFC][libc++] Suppress "warning: ignoring return value" 2021-02-26 14:32:54 -08:00
numbers [libcxx] cleans up __cpp_concepts mess 2021-02-26 18:43:40 +00:00
numeric [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
optional [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
ostream [libc++] Drop old workaround for iostreams instantiations missing from the dylib 2020-10-22 14:51:25 -04:00
queue [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
random [libcxx] cleans up __cpp_concepts mess 2021-02-26 18:43:40 +00:00
ratio
regex [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
scoped_allocator
semaphore [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
set [libc++] Move __libcpp_erase_if_container into <iterator>, and ADL-proof it. 2021-03-22 11:13:33 -04:00
setjmp.h
shared_mutex [libc++] Rework the whole availability markup implementation 2020-11-05 12:28:52 -05:00
span [libc++] Consistently unparenthesize `numeric_limits<T>::max`. NFCI. 2020-11-27 17:27:36 -05:00
sstream [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
stack
stdbool.h
stddef.h Avoid using std::max_align_t in pre-C++11 mode 2020-04-04 01:38:41 +02:00
stdexcept [libc++] NFC: Simplify incude of <cstdlib> 2020-11-11 17:04:32 -05:00
stdint.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
stdio.h
stdlib.h Reland [libc++] Move abs and div into stdlib.h to fix header cycle. 2020-05-08 21:52:27 +02:00
streambuf [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
string [libc++] [C++20] [P0482] Add missing tests and synopses for char8_t. 2021-03-23 18:45:31 +01:00
string.h
string_view [libc++] [P1032] Misc constexpr bits in <iterator>, <string_view>, <tuple>, <utility>. 2021-03-25 10:34:35 -04:00
strstream [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
system_error [libc++] Include <__config> first in all standard headers. 2021-03-22 19:01:18 -04:00
tgmath.h
thread [libc++] ADL-proof <thread>, and eliminate `using namespace chrono`. 2020-12-01 22:13:39 -05:00
tuple [libc++] [P1032] Misc constexpr bits in <iterator>, <string_view>, <tuple>, <utility>. 2021-03-25 10:34:35 -04:00
type_traits [libc++] Consistency on _LIBCPP_CLANG_VER tests in <type_traits>. 2021-03-19 10:49:00 -04:00
typeindex
typeinfo [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
unordered_map [libc++] Move __libcpp_erase_if_container into <iterator>, and ADL-proof it. 2021-03-22 11:13:33 -04:00
unordered_set [libc++] Move __libcpp_erase_if_container into <iterator>, and ADL-proof it. 2021-03-22 11:13:33 -04:00
utility [libc++] [P1032] Misc constexpr bits in <iterator>, <string_view>, <tuple>, <utility>. 2021-03-25 10:34:35 -04:00
valarray [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
variant [libc++] [C++2b] [P2162] Allow inheritance from std::variant. 2021-03-25 18:20:50 +01:00
vector [libc++] ADL-proof by adding _VSTD:: qualifications to memmove etc. 2020-12-10 22:03:12 -05:00
version [libc++] [C++2b] [P2162] Allow inheritance from std::variant. 2021-03-25 18:20:50 +01:00
wchar.h [libc++] Revert "[SystemZ][z/OS] Missing wchar functions libc++" 2021-03-22 17:35:43 -04:00
wctype.h [libc++] Only include_next <wctype.h> if it exists 2020-11-17 13:14:36 -05:00