mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-09 09:15:38 +02:00
Bug 309564: Partial ordering of template funcitons.
This commit is contained in:
parent
c038f8b53e
commit
f210a17908
2 changed files with 6 additions and 2 deletions
|
@ -2285,7 +2285,7 @@ public class AST2TemplateTests extends AST2BaseTest {
|
|||
// void test(int* x) {
|
||||
// f<int>(x);
|
||||
// }
|
||||
public void _testFunctionTemplate_309564() throws Exception {
|
||||
public void testFunctionTemplate_309564() throws Exception {
|
||||
final String code = getAboveComment();
|
||||
parseAndCheckBindings(code);
|
||||
}
|
||||
|
|
|
@ -211,7 +211,7 @@ public class TemplateArgumentDeduction {
|
|||
// 14.8.2.1-2
|
||||
if (par instanceof ICPPReferenceType) {
|
||||
// If P is an rvalue reference to a cv-unqualified template parameter and the argument is an
|
||||
// lvalue, the type A& �lvalue reference to A� is used in place of A for type deduction.
|
||||
// lvalue, the type "lvalue reference to A" is used in place of A for type deduction.
|
||||
isReferenceTypeParameter= true;
|
||||
final ICPPReferenceType refPar = (ICPPReferenceType) par;
|
||||
if (refPar.isRValueReference() && refPar.getType() instanceof ICPPTemplateParameter && argIsLValue.get(j)) {
|
||||
|
@ -275,6 +275,10 @@ public class TemplateArgumentDeduction {
|
|||
}
|
||||
}
|
||||
}
|
||||
// Bug 309564: For partial ordering not all arguments need to be deduced
|
||||
if (checkExactMatch)
|
||||
return true;
|
||||
|
||||
if (!deduct.fExplicitArgs.mergeToExplicit(deduct.fDeducedArgs))
|
||||
return false;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue