http://llvm.org/bugs/show_bug.cgi?id=8462

           Summary: Argument deduction failure in function templates
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected], [email protected]


Created an attachment (id=5661)
 --> (http://llvm.org/bugs/attachment.cgi?id=5661)
Test case

There is a problem with deducing template parameters of function templates when
multiple inheritance is involved. 

The attached source code procduces the follow error messages

reduction.cpp:32:16: error: no matching function for call to 'F'
        T *n = ::F<tag>(*t);
               ^~~~~~~~
reduction.cpp:42:10: note: in instantiation of member function 'context<struct
D, struct T1>::doit' requested here
    con1.doit(&d);
         ^
reduction.cpp:21:4: note: candidate template ignored: failed template argument
deduction
T* F(sugar<T, Tag> &b) { return static_cast<T*>(b.n); }
   ^
reduction.cpp:23:4: note: candidate template ignored: failed template argument
deduction
T* F(B<T, Tag> &b) { return b.n; }
   ^
reduction.cpp:25:4: note: candidate template ignored: failed template argument
deduction
T* F(BT<T, Tag> &b) { return b.n; }
   ^
reduction.cpp:32:16: error: no matching function for call to 'F'
        T *n = ::F<tag>(*t);
               ^~~~~~~~
reduction.cpp:44:10: note: in instantiation of member function 'context<struct
D, struct T2>::doit' requested here
    con2.doit(&d);
         ^
reduction.cpp:21:4: note: candidate template ignored: failed template argument
deduction
T* F(sugar<T, Tag> &b) { return static_cast<T*>(b.n); }
   ^
reduction.cpp:23:4: note: candidate template ignored: failed template argument
deduction
T* F(B<T, Tag> &b) { return b.n; }
   ^
reduction.cpp:25:4: note: candidate template ignored: failed template argument
deduction
T* F(BT<T, Tag> &b) { return b.n; }
   ^
10 diagnostics generated.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to