Community
Participate
Working Groups
For the following code: #include <iostream> using namespace std; template <typename T> void g() { cout << "one\n"; } template <typename T, typename U> void g() // ERROR HERE { cout << "two\n"; } int main() { g<int>(); g<int, int>(); return 0; } The parser gives the error: "Invalid redefinition of g". The code compiles fine with gcc and produces the output one two as expected.
Created attachment 188256 [details] testcase + fix
Fixed in 8.0 > 20110203.
*** cdt cvs genie on behalf of mschorn *** Bug 335062: Corrected signature for function templates. [*] PDOMCPPClassTemplateSpecialization.java 1.17 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplateSpecialization.java?root=Tools_Project&r1=1.16&r2=1.17 [*] PDOMCPPFunctionTemplateSpecialization.java 1.14 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPFunctionTemplateSpecialization.java?root=Tools_Project&r1=1.13&r2=1.14 [*] PDOMCPPDeferredClassInstance.java 1.31 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPDeferredClassInstance.java?root=Tools_Project&r1=1.30&r2=1.31 [*] PDOMCPPClassTemplatePartialSpecialization.java 1.27 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplatePartialSpecialization.java?root=Tools_Project&r1=1.26&r2=1.27 [*] CompositeCPPClassTemplateSpecialization.java 1.11 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassTemplateSpecialization.java?root=Tools_Project&r1=1.10&r2=1.11 [*] CompositeCPPTemplateTemplateParameter.java 1.5 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPTemplateTemplateParameter.java?root=Tools_Project&r1=1.4&r2=1.5 [*] CompositeCPPClassTemplatePartialSpecializationSpecialization.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassTemplatePartialSpecializationSpecialization.java?root=Tools_Project&r1=1.3&r2=1.4 [*] TemplateInstanceUtil.java 1.16 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/TemplateInstanceUtil.java?root=Tools_Project&r1=1.15&r2=1.16 [*] CompositeCPPFunctionTemplate.java 1.13 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunctionTemplate.java?root=Tools_Project&r1=1.12&r2=1.13 [*] CompositeCPPFunctionTemplateSpecialization.java 1.10 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPFunctionTemplateSpecialization.java?root=Tools_Project&r1=1.9&r2=1.10 [*] CompositeCPPClassTemplate.java 1.16 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/cpp/CompositeCPPClassTemplate.java?root=Tools_Project&r1=1.15&r2=1.16 [*] CPPTemplateParameter.java 1.35 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateParameter.java?root=Tools_Project&r1=1.34&r2=1.35 [*] CPPClassTemplatePartialSpecializationSpecialization.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassTemplatePartialSpecializationSpecialization.java?root=Tools_Project&r1=1.3&r2=1.4 [*] CPPTemplateDefinition.java 1.52 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateDefinition.java?root=Tools_Project&r1=1.51&r2=1.52 [*] CPPClassTemplateSpecialization.java 1.29 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassTemplateSpecialization.java?root=Tools_Project&r1=1.28&r2=1.29 [*] CPPFunctionTemplateSpecialization.java 1.19 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPFunctionTemplateSpecialization.java?root=Tools_Project&r1=1.18&r2=1.19 [*] CPPDeferredClassInstance.java 1.40 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPDeferredClassInstance.java?root=Tools_Project&r1=1.39&r2=1.40 [*] ICPPTemplateDefinition.java 1.14 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPTemplateDefinition.java?root=Tools_Project&r1=1.13&r2=1.14 [*] ICPPTemplateTemplateParameter.java 1.8 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPTemplateTemplateParameter.java?root=Tools_Project&r1=1.7&r2=1.8 [*] CPPTemplates.java 1.130 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.129&r2=1.130 [*] CPPSemantics.java 1.200 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.199&r2=1.200 [*] PDOM.java 1.158 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java?root=Tools_Project&r1=1.157&r2=1.158 [*] IndexCPPSignatureUtil.java 1.17 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexCPPSignatureUtil.java?root=Tools_Project&r1=1.16&r2=1.17 [*] AST2TemplateTests.java 1.205 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.204&r2=1.205 [*] AST2CPPSpecTest.java 1.74 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecTest.java?root=Tools_Project&r1=1.73&r2=1.74 [*] PDOMTestBase.java 1.24 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/PDOMTestBase.java?root=Tools_Project&r1=1.23&r2=1.24 [*] CPPFunctionTemplateTests.java 1.5 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/CPPFunctionTemplateTests.java?root=Tools_Project&r1=1.4&r2=1.5