llvm-project/libcxx/include
Mark de Wever 2b8b48c5a0 [libc++][format] Disable default formatter.
[format.formatter.spec]/5 lists the requirements for the default
formatter. The original implementation didn't implement this. This
implements the default formatter according to the Standard.

This adds additional test to validate the default formatter is disabled
and the required standard formatters are enabled.

While adding the tests it seems the formatters needed a constraint for the
character types they were valid for.

Implements parts of:
- P0645 Text Formatting

Depends on D115988

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D115989
2022-01-24 18:14:41 +01:00
..
__algorithm [libc++] Add _LIBCPP_HIDE_FROM_ABI to in_in_result 2022-01-15 20:30:08 +01:00
__bit [libc++] Implement P1272R4 (std::byteswap) 2021-11-22 01:28:18 +01:00
__charconv [libc++] Adds (to|from)_chars_result operator==. 2021-11-19 16:29:33 +01:00
__chrono [libcxx] chrono::month_weekday should not be default constructible 2022-01-20 11:47:56 -08:00
__compare [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
__concepts [libc++] [ranges] ADL-proof the [range.access] CPOs. 2022-01-04 17:15:42 -05:00
__coroutine [libcxx] [Coroutines] Support noop_coroutine for GCC 2021-12-27 13:53:21 +08:00
__filesystem [libc++] [API BREAK] Change `fs::path::iterator::iterator_category` to `input_iterator_tag`. 2022-01-17 16:33:23 -05:00
__format [libc++][format] Disable default formatter. 2022-01-24 18:14:41 +01:00
__functional [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
__iterator [libc++] Mark LWG3541 as "Complete". NFC. 2022-01-23 10:15:17 -05:00
__memory [libc++] Eliminate the `__function_like` helper. 2022-01-20 14:40:16 -05:00
__numeric [libcxx][modularisation] modularises <numeric> header 2021-12-01 20:40:21 +00:00
__random [libc++] [ABI BREAK] Conform lognormal_distribution::param_type. 2022-01-17 10:22:41 -05:00
__ranges [libc++] Implement LWG3549: view_interface need not inherit from view_base 2022-01-22 22:52:46 -05:00
__support [libcxx][test] compiler options are non-portable 2022-01-18 11:34:57 -08:00
__thread [libc++] Split a few utilities out of __threading_support 2022-01-18 12:23:44 -05:00
__utility [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
__variant [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
experimental [libc++][NFC] Remove clang-diagnostic-c++98-compat-extra-semi warnings in experimental/simd 2022-01-14 19:38:33 +01:00
ext [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
CMakeLists.txt [libc++][format] Adds formatter pointer. 2022-01-24 18:13:02 +01:00
__availability Microsoft's floating-point to_chars powered by Ryu and Ryu Printf 2021-12-12 16:34:50 +01:00
__bit_reference [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
__bits [libc++] Fix some typos and remove unused macros. NFCI. 2021-04-22 12:02:22 -04:00
__bsd_locale_defaults.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
__bsd_locale_fallbacks.h [libc++] Add missing __format__ attributes 2021-11-26 11:03:14 -05:00
__config [libc++] [NFC] Remove a hard tab from __config. 2022-01-14 12:18:44 -05:00
__config_site.in [libcxx] Add LIBCXX_EXTRA_SITE_DEFINES for adding extra defines in __config_site 2021-12-22 00:43:29 +02:00
__debug [libc++] Introduce __debug_db_insert_i() 2022-01-17 20:31:21 +01:00
__errc [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05: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 unordered_map. 2022-01-21 20:43:45 +01:00
__libcpp_version [libcxx] Bump __libcpp_version to 14 after branch 2021-07-28 11:07:06 +00:00
__locale [SystemZ][z/OS][NFC] Remove extra symbol 2022-01-21 16:18:46 -05:00
__mbstate_t.h [libc++] Add an option to disable wide character support in libc++ 2021-10-12 06:08:23 -04:00
__mutex_base [libc++] Modularize <chrono> 2022-01-14 09:55:29 -05:00
__node_handle [libc++][NFC] Add missing synopsis for node handles 2021-09-07 15:26:33 -04:00
__nullptr [libc++][NFC] Update namespace comments in include/ 2021-12-02 21:06:59 +01: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++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
__threading_support [libc++] Split a few utilities out of __threading_support 2022-01-18 12:23:44 -05:00
__tree [libc++] Use addressof in assignment operator. 2021-10-07 18:10:47 +02:00
__tuple [libc++] Enable the optimized _IsSame on GCC as well as Clang. 2021-12-15 20:19:56 -05:00
__undef_macros [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
algorithm [libc++][ranges] Add ranges::in_in_result 2022-01-14 02:56:33 +01:00
any [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
array [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
atomic [libc++] Split a few utilities out of __threading_support 2022-01-18 12:23:44 -05:00
barrier [libc++] Split a few utilities out of __threading_support 2022-01-18 12:23:44 -05:00
bit [libc++] Disable _LIBCPP_DEBUG_ASSERT during constant evaluation 2021-12-17 11:15:53 +01:00
bitset [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
cassert [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
ccomplex [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cctype [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cerrno [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cfenv [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cfloat [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
charconv Microsoft's floating-point to_chars powered by Ryu and Ryu Printf 2021-12-12 16:34:50 +01:00
chrono [libc++] Split a few utilities out of __threading_support 2022-01-18 12:23:44 -05:00
cinttypes [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
ciso646 [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
climits [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
clocale [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cmath [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
codecvt [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
compare [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
complex [libc++][NFC] Update namespace comments in include/ 2021-12-02 21:06:59 +01:00
complex.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
concepts [libc++][NFC] Move concepts to a subheader. 2021-09-02 19:22:15 +02:00
condition_variable [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
coroutine [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
csetjmp [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
csignal [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cstdarg [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cstdbool [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cstddef [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cstdint [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cstdio [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cstdlib [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cstring [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
ctgmath [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
ctime [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
ctype.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cwchar [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
cwctype [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
deque [libcxx][NFC] Make sequence containers slightly more SFINAE-friendly during CTAD. 2021-12-01 11:56:51 -08:00
errno.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
exception [libc++][NFC] Update namespace comments in include/ 2021-12-02 21:06:59 +01:00
execution [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
fenv.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
filesystem [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
float.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
format [libc++][format] Adds formatter pointer. 2022-01-24 18:13:02 +01:00
forward_list [libcxx][NFC] Make sequence containers slightly more SFINAE-friendly during CTAD. 2021-12-01 11:56:51 -08:00
fstream [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
functional [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
future [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
initializer_list [libc++][NFC] Update namespace comments in include/ 2021-12-02 21:06:59 +01:00
inttypes.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
iomanip [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
ios [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
iosfwd [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
iostream [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
istream [libc++] `= delete` member functions with // = delete; 2021-12-08 19:29:44 +01:00
iterator [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
latch [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
limits [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
limits.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
list [libc++] Introduce __debug_db_insert_i() 2022-01-17 20:31:21 +01:00
locale [libc++] Use reserved identifier for template parameter 2022-01-18 19:20:25 +00:00
locale.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
map [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
math.h [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
memory [libc++][ranges] Implement `construct_at` and `destroy{,_at}`. 2022-01-12 16:01:04 -08:00
module.modulemap [libc++][format] Adds formatter pointer. 2022-01-24 18:13:02 +01:00
mutex [libc++] `= delete` member functions with // = delete; 2021-12-08 19:29:44 +01:00
new [libc++][NFC] Update namespace comments in include/ 2021-12-02 21:06:59 +01:00
numbers [libc++] _Uglify some template parameter names. NFCI. 2022-01-14 10:32:04 -05:00
numeric [libcxx][modularisation] modularises <numeric> header 2021-12-01 20:40:21 +00:00
optional [libc++] _Uglify some template parameter names. NFCI. 2022-01-14 10:32:04 -05:00
ostream [libc++] `= delete` member functions with // = delete; 2021-12-08 19:29:44 +01:00
queue [libc++] Implement P1425R4 (Iterator pair constructors for std::stack and std::queue) 2022-01-06 18:55:11 +01:00
random [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
ranges [libc++] [ranges] Implement P2415R2 owning_view. 2022-01-13 12:29:41 -05:00
ratio [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
regex [SystemZ][z/OS] ASCII/EBCDIC support with no coexistence 2022-01-14 11:37:09 -05:00
scoped_allocator [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
semaphore [libc++] Split a few utilities out of __threading_support 2022-01-18 12:23:44 -05:00
set [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
setjmp.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
shared_mutex [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
span [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
sstream [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
stack [libc++] Implement P1425R4 (Iterator pair constructors for std::stack and std::queue) 2022-01-06 18:55:11 +01:00
stdbool.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
stddef.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
stdexcept [libc++] Alphabetize header #includes. NFCI. 2022-01-10 16:30:38 -05:00
stdint.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
stdio.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
stdlib.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
streambuf [libc++] Modularize <chrono> 2022-01-14 09:55:29 -05:00
string [libc++] basic_string::resize_and_overwrite: Adopt LWG3645 (Not voted in yet) 2022-01-20 18:41:09 +01:00
string.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
string_view [libc++] Fix the return value of max_size() 2021-12-06 13:53:25 -05:00
strstream [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
system_error [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
tgmath.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
thread [libc++] Split a few utilities out of __threading_support 2022-01-18 12:23:44 -05:00
tuple [libc++][P2321R2] Add specializations of basic_common_reference and common_type for tuple 2022-01-17 19:49:57 +01:00
type_traits [libc++] _Uglify some template parameter names. NFCI. 2022-01-14 10:32:04 -05:00
typeindex [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
typeinfo [libc++][NFC] Update namespace comments in include/ 2021-12-02 21:06:59 +01:00
unordered_map [libc++] Use addressof in unordered_map. 2022-01-21 20:43:45 +01:00
unordered_set [libc++] Use addressof in unordered_set. 2022-01-22 11:41:13 +01:00
utility [libc++] [ranges] Introduce _LIBCPP_AUTO_CAST(x) for auto(x). 2021-12-22 12:29:42 -05:00
valarray [libc++] Add the version header to all headers. 2022-01-04 19:50:59 +01:00
variant [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
vector [libc++][NFC] Use _LIBCPP_DEBUG_ASSERT in <vector> 2022-01-17 19:28:16 +01:00
version [libc++] Fix LWG3437 "__cpp_lib_polymorphic_allocator is in the wrong header" 2022-01-23 10:30:09 -05:00
wchar.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
wctype.h [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00