llvm-project/libcxx/test/std/strings/basic.string
Konstantin Varlamov f9f97cae82 [libc++] P0433R2: add the remaining deduction guides.
Add deduction guides to `valarray` and `scoped_allocator_adaptor`. This largely
finishes implementation of the paper:

* deduction guides for other classes mentioned in the paper were
  implemented previously (see the list below);
* deduction guides for several classes contained in the proposal
  (`reference_wrapper`, `lock_guard`, `scoped_lock`, `unique_lock`,
  `shared_lock`) were removed by [LWG2981](https://wg21.link/LWG2981).

Also add deduction guides to the synopsis for the few classes (e.g. `pair`)
where they were missing.

The only part of the paper that isn't fully implemented after this patch is
making sure certain deduction guides don't participate in overload resolution
when given incorrect template parameters.

List of significant commits implementing the other parts of P0433 (omitting some
minor fixes):

* [pair](af65856eec)
* [basic_string](6d9f750dec)
* [array](0ca8c0895c)
* [deque](dbb6f8a817)
* [forward_list](e076700b77)
* [list](4a227e582b)
* [vector](df8f754792)
* [queue/stack/priority_queue](5b8b8b5dce)
* [basic_regex](edd5e29cfe)
* [optional](f35b4bc395)
* [map/multimap](edfe8525de)
* [set/multiset](e20865c387)
* [unordered_set/unordered_multiset](296a80102a)
* [unordered_map/unordered_multimap](dfcd4384cb)
* [function](e1eabcdfad)
* [tuple](1308011e1b)
* [shared_ptr/weak_ptr](83564056d4)

Additional notes:
* It was revision 2 of the paper that was voted into the Standard.
  P0433R3 is a separate paper that is not part of the Standard.
* The paper also mandates removing several `make_*_searcher` functions
  (e.g. `make_boyer_moore_searcher`) which are currently not implemented
  (except in `experimental/`).
* The `__cpp_lib_deduction_guides` feature test macro from the paper was
  accidentally omitted from the Standard.

Differential Revision: https://reviews.llvm.org/D112510
2021-10-28 11:09:51 -07:00
..
string.access [libc++] Split off debug tests that were missed by ce1365f8f7 into test/libcxx 2020-10-14 12:02:37 -04:00
string.capacity [libc++] Remove "// -*- C++ -*-" comments from all .cpp files. NFCI. 2021-10-01 12:06:59 -04:00
string.cons [libc++] P0433R2: add the remaining deduction guides. 2021-10-28 11:09:51 -07:00
string.contains [libc++] Divorce the std Lit feature from the -std=XXX compiler flag 2021-04-12 11:55:39 -04:00
string.ends_with [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
string.iterators [libc++] Add an option to disable wide character support in libc++ 2021-10-12 06:08:23 -04:00
string.modifiers [libc++] [LIBCXX-DEBUG-FIXME] Fix an iterator-invalidation issue in string::assign. 2021-05-05 16:20:53 -04:00
string.nonmembers [libc++] Add an option to disable wide character support in libc++ 2021-10-12 06:08:23 -04:00
string.ops [libc++] Add `noexcept` to `string::find` and similar members. 2021-02-09 11:47:40 -08:00
string.require
string.starts_with [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
allocator_mismatch.compile.fail.cpp [libc++] Remove workaround for .fail.cpp tests that don't have clang-verify markup 2020-04-15 10:53:37 -04:00
char.bad.fail.cpp
cpp17_input_iterator.h [libcxx][nfc] prefixes test type `input_iterator` with `cpp17_` 2021-05-02 05:02:59 +00:00
range_concept_conformance.compile.pass.cpp [libc++][NFC] Replace uses of stdr:: by just std::ranges:: 2021-09-02 13:02:12 -04:00
test_traits.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
traits_mismatch.compile.fail.cpp [libc++] Remove workaround for .fail.cpp tests that don't have clang-verify markup 2020-04-15 10:53:37 -04:00
types.pass.cpp