summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/drs/dr10xx.cpp
Commit message (Collapse)AuthorAgeFilesLines
* When substituting previously-checked template arguments into a templateRichard Smith2018-03-081-3/+2
| | | | | | | | | | | | | template parameter that is an expanded parameter pack, only substitute into the current slice, not the entire pack. This reduces the checking of N template template arguments for an expanded parameter pack containing N parameters from quadratic time to linear time in the length of the pack. This is important because one (and possibly the only?) general technique for splitting a template parameter pack in linear time depends on doing this. llvm-svn: 326973
* Finish implementation of C++ DR1310 (http://wg21.link/cwg1310).Richard Smith2017-01-201-4/+5
| | | | | | | Diagnose the case when a dependent template name instantiates to an injected-class-name outside a nested-name-specifier. llvm-svn: 292545
* PR9551: Implement DR1004 (http://wg21.link/cwg1004).Richard Smith2017-01-181-0/+23
| | | | | | | | This rule permits the injected-class-name of a class template to be used as both a template type argument and a template template argument, with no extra syntax required to disambiguate. llvm-svn: 292426
* [c++17] P0135R1: Guaranteed copy elision.Richard Smith2016-12-061-2/+12
| | | | | | | | When an object of class type is initialized from a prvalue of the same type (ignoring cv qualifications), use the prvalue to initialize the object directly instead of inserting a redundant elidable call to a copy constructor. llvm-svn: 288866
* DR1048: drop top-level cv-qualifiers when deducing the return type of aRichard Smith2014-12-191-0/+18
| | | | | | lambda-expression in C++11, to match the C++14 rules. llvm-svn: 224620
* Run DR tests in C++17 mode too.Richard Smith2014-09-281-1/+2
| | | | llvm-svn: 218580
* Implement DR990 and DR1070. Aggregate initialization initializes uninitializedRichard Smith2014-06-031-0/+33
elements from {}, rather than value-initializing them. This permits calling an initializer-list constructor or constructing a std::initializer_list object. (It would also permit initializing a const reference or rvalue reference if that weren't explicitly prohibited by other rules.) llvm-svn: 210091
OpenPOWER on IntegriCloud