llvm-project/libcxx/include
Joe Loser 0d450aa641
[libc++] P2401: conditional noexcept for std::exchange
Implement P2401 which adds a `noexcept` specification to
`std::exchange`. Treated as a defect fix which is the motivation for
applying this change to all standards mode rather than just C++23 or
later as the paper suggests.

Reviewed By: Quuxplusone, Mordante, #libc

Differential Revision: https://reviews.llvm.org/D111481
2021-10-11 14:34:45 -04:00
..
__algorithm [libc++] Comma-operator-proof a lot of algorithm/container code. 2021-09-08 13:34:01 -04:00
__bit [libc++] Implement C++20's P0476R2: std::bit_cast 2021-09-09 11:05:54 -04:00
__charconv [libc++][NFC] split <charconv>. 2021-08-31 18:45:19 +02:00
__compare [libc++] [P1614] Implement std::compare_three_way. 2021-10-10 21:57:10 -04:00
__concepts [libc++] Remove an unused internal concept. 2021-09-02 19:27:49 +02:00
__format [libc++][format] Adds bool formatter. 2021-10-07 17:17:27 +02:00
__functional [libc++][NFCI] Remove uses of _LIBCPP_INLINE_VAR 2021-09-22 16:03:00 -04:00
__iterator [NFC][libc++] Update back_insert_iterator style. 2021-10-09 13:31:20 +02:00
__memory [libc++][NFC] Fix include guard for some detail header 2021-10-04 13:36:08 -04:00
__random [libcxx] Move all algorithms into their own headers 2021-06-19 07:49:06 -04:00
__ranges [libc++] [ranges] Uncomment operator<=> in transform and iota iterators. 2021-10-02 21:26:27 -04:00
__support [libcxx][AIX] Remove locale fallbacks for old OS levels 2021-09-21 21:14:50 -04:00
__utility [libc++] P2401: conditional noexcept for std::exchange 2021-10-11 14:34:45 -04:00
__variant [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
experimental [libc++][NFCI] Remove uses of _LIBCPP_INLINE_VAR 2021-09-22 16:03:00 -04:00
ext [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
CMakeLists.txt [libc++] [P1614] Implement std::compare_three_way. 2021-10-10 21:57:10 -04:00
__availability [libc++][format] Add __format_arg_store. 2021-09-01 19:45:02 +02:00
__bit_reference [libc++] __bit_iterator mustn't rely on deprecated SMF generation. 2021-04-26 16:22:42 -04:00
__bits [libc++] Fix some typos and remove unused macros. NFCI. 2021-04-22 12:02:22 -04:00
__bsd_locale_defaults.h
__bsd_locale_fallbacks.h [libcxx][gardening] Re-order includes across libcxx. 2021-05-21 13:22:10 -07:00
__config [libc++] Use init_priority(100) when possible 2021-10-06 15:53:56 -04:00
__config_site.in [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
__debug [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__errc [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__function_like.h [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
__functional_base [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
__hash_table [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
__libcpp_version [libcxx] Bump __libcpp_version to 14 after branch 2021-07-28 11:07:06 +00:00
__locale [libcxx] Remove the locale fallback for NuttX 2021-08-31 09:46:55 -04:00
__mutex_base [libc++][NFCI] Remove uses of _LIBCPP_INLINE_VAR 2021-09-22 16:03:00 -04:00
__node_handle [libc++][NFC] Add missing synopsis for node handles 2021-09-07 15:26:33 -04:00
__nullptr [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__split_buffer [libc++] Comma-operator-proof a lot of algorithm/container code. 2021-09-08 13:34:01 -04:00
__std_stream [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
__string [libc++] [LIBCXX-DEBUG-FIXME] Constexpr char_traits::copy mustn't compare unrelated pointers. 2021-09-20 14:44:59 -04:00
__threading_support [libc++] Define _LIBCPP_NO_NATIVE_SEMAPHORES even outside of pthread 2021-06-03 18:18:42 -04:00
__tree [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
__tuple [libc++] Remove workarounds for [[nodebug]] not working properly on typedefs in older Clangs 2021-09-01 10:51:09 -04:00
__undef_macros
algorithm [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
any [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
array [libc++] Use enable_if_t instead of _EnableIf 2021-09-08 09:09:28 -04:00
atomic [libc++] Improve atomic_fetch_(add|sub).*. 2021-10-08 17:41:57 +02:00
barrier [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
bit [libc++] Implement C++20's P0476R2: std::bit_cast 2021-09-09 11:05:54 -04:00
bitset [libc++][NFC] Rename _EnableIf to __enable_if_t for consistency 2021-09-08 15:20:58 -04:00
cassert
ccomplex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cctype [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cerrno [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cfenv [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cfloat [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
charconv [libc++][NFC] split <charconv>. 2021-08-31 18:45:19 +02:00
chrono [libc++] Remove uses of _LIBCPP_HAS_NO_VARIABLE_TEMPLATES 2021-09-23 08:53:59 -04:00
cinttypes [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
ciso646 [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
climits [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
clocale [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
cmath [libc++] Use enable_if_t instead of _EnableIf 2021-09-08 09:09:28 -04:00
codecvt [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
compare [libc++] [P1614] Implement std::compare_three_way. 2021-10-10 21:57:10 -04:00
complex [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
complex.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
concepts [libc++][NFC] Move concepts to a subheader. 2021-09-02 19:22:15 +02:00
condition_variable [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
csetjmp [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
csignal [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdarg [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdbool [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstddef [libc++][NFC] Remove #endif comments for really small conditionals on _LIBCPP_HAS_NO_UNICODE_CHARS 2021-09-09 11:25:10 -04:00
cstdint [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdio [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
cstdlib [libc++] Remove _LIBCPP_HAS_NO_LONG_LONG in favour of using_if_exists 2021-09-03 14:26:59 -04:00
cstring [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
ctgmath [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
ctime [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
ctype.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cwchar [libc++] Remove _LIBCPP_HAS_NO_LONG_LONG in favour of using_if_exists 2021-09-03 14:26:59 -04:00
cwctype [libc++] Fix incorrect bypassing of <wctype.h> 2021-08-26 13:26:31 -04:00
deque [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
errno.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
exception [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
execution [pstl][libc++] Provide uglified header names for interface headers 2019-08-06 21:11:24 +00:00
fenv.h Mark fenv.h as a system header before the #include_next directive 2019-03-29 16:03:57 +00:00
filesystem [libc++][NFC] Replace tab with whitespace in comment 2021-10-10 12:53:35 -04:00
float.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
format [libc++][format] Adds bool formatter. 2021-10-07 17:17:27 +02:00
forward_list [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
fstream [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
functional [libc++] [P1614] Implement std::compare_three_way. 2021-10-10 21:57:10 -04:00
future [libc++][NFC] Fix include guard for decay_copy.h and remove underscores from the header 2021-08-27 12:45:53 -04:00
initializer_list [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
inttypes.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
iomanip [libc++][NFC] Remove _VSTD:: when not needed. 2021-05-10 18:15:50 +02:00
ios [libc++] Restore `basic_ios`'s implicit conversion to `bool` in C++03 mode. 2021-08-11 13:36:29 -04:00
iosfwd [libc++][NFC] Remove #endif comments for really small conditionals on _LIBCPP_HAS_NO_UNICODE_CHARS 2021-09-09 11:25:10 -04:00
iostream [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
istream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
iterator [libcxx][ranges] Add `unreachable_sentinel`. 2021-08-12 10:11:27 -07:00
latch [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
limits [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
limits.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
list [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
locale [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
locale.h [libc++][NFC] Reindent error message 2021-08-23 15:34:51 -04:00
map [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
math.h [libc++][NFC] Rename _EnableIf to __enable_if_t for consistency 2021-09-08 15:20:58 -04:00
memory [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
module.modulemap [libc++] [P1614] Implement std::compare_three_way. 2021-10-10 21:57:10 -04:00
mutex [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
new [libc++][NFCI] Remove uses of _LIBCPP_INLINE_VAR 2021-09-22 16:03:00 -04:00
numbers [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
numeric [libc++] Alphabetize header inclusions and include-what-you-use <__debug>. NFCI. 2021-05-18 19:56:30 -04:00
optional [libc++][NFCI] Remove uses of _LIBCPP_INLINE_VAR 2021-09-22 16:03:00 -04:00
ostream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
queue [libc++][NFC] Rename _EnableIf to __enable_if_t for consistency 2021-09-08 15:20:58 -04:00
random [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
ranges [libc++][nfc] Remove a duplicated include. 2021-10-10 14:21:01 +02:00
ratio [libc++] Remove uses of _LIBCPP_HAS_NO_VARIABLE_TEMPLATES 2021-09-23 08:53:59 -04:00
regex [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
scoped_allocator [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
semaphore [libc++] counting_semaphore should not be default-constructible. 2021-09-21 16:19:31 -04:00
set [libc++] Use enable_if_t instead of _EnableIf 2021-09-08 09:09:28 -04:00
setjmp.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
shared_mutex [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
span [libc++] Implement P1394r4 for span: range constructor 2021-10-08 17:00:39 -04:00
sstream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
stack [libc++][NFC] Rename _EnableIf to __enable_if_t for consistency 2021-09-08 15:20:58 -04:00
stdbool.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stddef.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdexcept [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
stdint.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdio.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdlib.h [libc++] Remove _LIBCPP_HAS_NO_LONG_LONG in favour of using_if_exists 2021-09-03 14:26:59 -04:00
streambuf [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
string [libc++] Refactor how basic_string and vector hoist exception-throwing functions 2021-10-05 20:53:40 -04:00
string.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
string_view [libc++] Implement P1391 for string_view 2021-10-06 14:17:10 -04:00
strstream [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
system_error [libc++][NFCI] Remove uses of _LIBCPP_INLINE_VAR 2021-09-22 16:03:00 -04:00
tgmath.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
thread [libc++][NFC] Fix include guard for decay_copy.h and remove underscores from the header 2021-08-27 12:45:53 -04:00
tuple [libc++][spaceship] Implement std::tuple::operator<=> 2021-10-08 16:24:28 -07:00
type_traits [libc++] Remove empty namespace std in type_traits. NFCI. 2021-10-10 14:35:05 -04:00
typeindex [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
typeinfo [libc++] Remove unnecessary reinterpret_cast from typeinfo 2021-06-28 10:00:33 -04:00
unordered_map [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
unordered_set [libc++] [P0919] Some belated review on D87171. 2021-09-20 14:46:38 -04:00
utility [libc++] P2401: conditional noexcept for std::exchange 2021-10-11 14:34:45 -04:00
valarray [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
variant [libc++][NFCI] Remove uses of _LIBCPP_INLINE_VAR 2021-09-22 16:03:00 -04:00
vector [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
version [libc++][NFC] Remove header name from <version> 2021-10-04 13:34:26 -04:00
wchar.h [SystemZ][z/OS] Missing wchar functions libc++ 2021-09-13 09:43:21 -04:00
wctype.h [libc++] Fix incorrect bypassing of <wctype.h> 2021-08-26 13:26:31 -04:00