![]() Deduction guides for containers should not participate in overload resolution when called with certain incorrect types (e.g. when called with a template argument in place of an `InputIterator` that doesn't qualify as an input iterator). Similarly, class template argument deduction should not select `unique_ptr` constructors that take a a pointer. The tests try out every possible incorrect parameter (but never more than one incorrect parameter in the same invocation). Also add deduction guides to the synopsis for associative and unordered containers (this was accidentally omitted from [D112510](https://reviews.llvm.org/D112510)). Differential Revision: https://reviews.llvm.org/D112904 |
||
---|---|---|
.. | ||
unique.ptr.class | ||
unique.ptr.create | ||
unique.ptr.dltr | ||
unique.ptr.special | ||
README.TXT |
README.TXT
Test Naming and Directory Structure =================================== The directory structure for the unique_ptr class templates differs from the normal test directory naming conventions (e.g. matching the stable name in the standard). Instead of having a [unique.ptr.single] and [unique.ptr.runtime] directory, each containing their own tests, a single directory, "unique.ptr.class", contains both sets of tests. This allows the common behavior of the two unique_ptr specializations to be tested in the same place without duplication. Tests specific to [unique.ptr.single] have the suffix ".single.pass.cpp" and those specific to [unique.ptr.runtime] are named "*.runtime.pass.cpp". Tests for both specializations are named normally.