https://bugs.llvm.org/show_bug.cgi?id=44946
Bug ID: 44946
Summary: template template argument deduction fail due to the
imaginary conflict
Product: clang
Version: 8.0
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: C++11
Assignee: unassignedclangb...@nondot.org
Reporter: v...@bk.ru
CC: blitzrak...@gmail.com, dgre...@apple.com,
erik.pilking...@gmail.com, llvm-bugs@lists.llvm.org,
richard-l...@metafoo.co.uk
enum class Enum {null};
template <Enum e> struct Pattern {};
template <int i> struct Breaker {};
struct Derived
: Pattern<Enum::null>
, Breaker<220> // <--------- this must not mades a collision with Pattern
because int is not a Enum
{};
template <template <Enum e> class P, Enum e> // here is Enum, int must not be
accepted
void matcher(P<e>);
int main()
{
matcher(Derived{});//'matcher' candidate ignored: failed template argument
deduction
return 0;
}
//affected versions: 8,9,10,11
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs