[all-commits] [llvm/llvm-project] e704aa: DR2303: Prefer 'nearer' base classes during templa...

Erich Keane via All-commits all-commits at lists.llvm.org
Fri Jul 31 05:40:26 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e704aa4f254a26505d4bb9dc38bdee0ff4efa4ba
      https://github.com/llvm/llvm-project/commit/e704aa4f254a26505d4bb9dc38bdee0ff4efa4ba
  Author: Erich Keane <erich.keane at intel.com>
  Date:   2020-07-31 (Fri, 31 Jul 2020)

  Changed paths:
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/test/CXX/drs/dr23xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  DR2303: Prefer 'nearer' base classes during template deduction.

DR2303 fixes the case where the derived-base match for template
deduction is ambiguous if a base-of-base ALSO matches. The canonical
example (as shown in the test) is just like the MSVC implementation of
std::tuple.

This fixes a fairly sizable issue, where if a user inherits from
std::tuple on Windows (with the MS STL), they cannot use that type to
call a function that takes std::tuple.

Differential Revision: https://reviews.llvm.org/D84048




More information about the All-commits mailing list