llvm-project/clang/test/CXX/expr
Richard Smith 3291877656 [c++1z] Synthesize implicit deduction guides from constructors on demand. Rank
such guides below explicit ones, and ensure that references to the class's
template parameters are not treated as forwarding references.

We make a few tweaks to the wording in the current standard:
1) The constructor parameter list is copied faithfully to the deduction guide,
   without losing default arguments or a varargs ellipsis (which the standard
   wording loses by omission).
2) If the class template declares no constructors, we add a T() -> T<...> guide
   (which will only ever work if T has default arguments for all non-pack
   template parameters).
3) If the class template declares nothing that looks like a copy or move
   constructor, we add a T(T<...>) -> T<...> guide.
#2 and #3 follow from the "pretend we had a class type with these constructors"
philosophy for deduction guides.

llvm-svn: 295007
2017-02-14 00:25:28 +00:00
..
expr.ass
expr.cast
expr.cond [c++1z] When initializing a const-qualified class type, don't forget to add on 2016-12-21 01:31:56 +00:00
expr.const DR616, and part of P0135R1: member access (or pointer-to-member access) on a 2016-12-03 01:14:32 +00:00
expr.mptr.oper
expr.post [c++1z] Synthesize implicit deduction guides from constructors on demand. Rank 2017-02-14 00:25:28 +00:00
expr.prim [Sema] Add warning for unused lambda captures 2017-01-13 15:01:06 +00:00
expr.unary Re-commit r283722, reverted in r283750, with a fix for a CUDA-specific use of 2016-10-10 18:54:32 +00:00
p3.cpp
p8.cpp
p9.cpp
p10-0x.cpp Update Clang tests to handle explicitly typed load changes in LLVM. 2015-02-27 21:19:58 +00:00
p13.cpp [c++1z] P0003R5: Removing dynamic exception specifications. 2016-12-08 02:49:07 +00:00