Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 326492 - [C++ semantics] Instantiating templates for overloaded function sets
Summary: [C++ semantics] Instantiating templates for overloaded function sets
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-parser (show other bugs)
Version: 8.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 8.0   Edit
Assignee: Markus Schorn CLA
QA Contact: Mike Kucera CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-29 04:24 EDT by Markus Schorn CLA
Modified: 2010-09-29 09:23 EDT (History)
0 users

See Also:


Attachments
testcase + fix (22.89 KB, patch)
2010-09-29 08:53 EDT, Markus Schorn CLA
mschorn.eclipse: iplog-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Schorn CLA 2010-09-29 04:24:18 EDT
If the argument for a function call is an overloaded function set, we fail to instantiate function templates. Here is an example:

template <typename T> void f(T (*)(int), char) {};
template <typename T> void f(int (*)(T), int) {};
template <typename T> void f(T, int);

int g(char) {return 1;};
void g(int) {};

void b() {
  f(g, '1');   // problem binding
  f(g, 1);     // problem binidng
}
Comment 1 Markus Schorn CLA 2010-09-29 08:53:20 EDT
Created attachment 179840 [details]
testcase + fix
Comment 2 Markus Schorn CLA 2010-09-29 08:53:53 EDT
Fixed in 8.0 > 20100929.
Comment 3 CDT Genie CLA 2010-09-29 09:23:04 EDT
*** cdt cvs genie on behalf of mschorn ***
Bug 326492: Overloaded function-sets in instantiation of function templates.

[*] CPPVisitor.java 1.133 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java?root=Tools_Project&r1=1.132&r2=1.133
[*] CPPTemplates.java 1.117 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java?root=Tools_Project&r1=1.116&r2=1.117
[*] TemplateArgumentDeduction.java 1.15 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java?root=Tools_Project&r1=1.14&r2=1.15
[*] CPPSemantics.java 1.185 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java?root=Tools_Project&r1=1.184&r2=1.185
[*] Conversions.java 1.67 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java?root=Tools_Project&r1=1.66&r2=1.67

[*] AST2TemplateTests.java 1.194 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java?root=Tools_Project&r1=1.193&r2=1.194
[*] AST2Tests.java 1.266 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java?root=Tools_Project&r1=1.265&r2=1.266
[*] AST2BaseTest.java 1.78 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2BaseTest.java?root=Tools_Project&r1=1.77&r2=1.78