[all-commits] [llvm/llvm-project] 68072a: [libc++] P0433R2: test that deduction guides are p...

Konstantin Varlamov via All-commits all-commits at lists.llvm.org
Tue Nov 9 09:32:46 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 68072a71662a7955b65a761b8e36a5ef6d38186a
      https://github.com/llvm/llvm-project/commit/68072a71662a7955b65a761b8e36a5ef6d38186a
  Author: Konstantin Varlamov <varconst at apple.com>
  Date:   2021-11-09 (Tue, 09 Nov 2021)

  Changed paths:
    M libcxx/docs/Status/Cxx17.rst
    M libcxx/docs/Status/Cxx17Papers.csv
    M libcxx/include/__memory/allocator_traits.h
    M libcxx/include/deque
    M libcxx/include/forward_list
    M libcxx/include/list
    M libcxx/include/map
    M libcxx/include/queue
    M libcxx/include/set
    M libcxx/include/unordered_map
    M libcxx/include/unordered_set
    M libcxx/include/vector
    M libcxx/test/std/containers/associative/map/map.cons/deduct.pass.cpp
    M libcxx/test/std/containers/associative/multimap/multimap.cons/deduct.pass.cpp
    M libcxx/test/std/containers/associative/multiset/multiset.cons/deduct.pass.cpp
    M libcxx/test/std/containers/associative/set/set.cons/deduct.pass.cpp
    M libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/deduct.pass.cpp
    M libcxx/test/std/containers/container.adaptors/queue/queue.cons/deduct.pass.cpp
    M libcxx/test/std/containers/container.adaptors/stack/stack.cons/deduct.pass.cpp
    M libcxx/test/std/containers/sequences/deque/deque.cons/deduct.pass.cpp
    M libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/deduct.pass.cpp
    M libcxx/test/std/containers/sequences/list/list.cons/deduct.pass.cpp
    M libcxx/test/std/containers/sequences/vector/vector.cons/deduct.pass.cpp
    M libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/deduct.pass.cpp
    M libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/deduct.pass.cpp
    M libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/deduct.pass.cpp
    M libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/deduct.pass.cpp
    A libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/deduct.pass.cpp
    A libcxx/test/support/deduction_guides_sfinae_checks.h

  Log Message:
  -----------
  [libc++] P0433R2: test that deduction guides are properly SFINAEd away.

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




More information about the All-commits mailing list