| Summary: | Parser fails to deduce argument type in situation involving heavy template use | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | Nathan Ridge <zeratul976> | ||||||||
| Component: | cdt-indexer | Assignee: | Markus Schorn <mschorn.eclipse> | ||||||||
| Status: | RESOLVED FIXED | QA Contact: | Markus Schorn <mschorn.eclipse> | ||||||||
| Severity: | normal | ||||||||||
| Priority: | P3 | CC: | cdtdoug, zeratul976 | ||||||||
| Version: | 8.0 | ||||||||||
| Target Milestone: | 8.0 | ||||||||||
| Hardware: | All | ||||||||||
| OS: | All | ||||||||||
| Whiteboard: | |||||||||||
| Attachments: |
|
||||||||||
Created attachment 185471 [details] source file that reproduces the error For the code in the attached files (test.cpp and test.hpp), the parser gives the following error at the call to a.f(0) in main() in test.cpp: Invalid arguments Candidates are: void f(?) The "?" leads me to believe the parser is unable to deduce the type of the argument of f. Interestingly, any of a number of small changes to the code cause the error to go away. Some of these are: 1. pasting the contents of test.hpp into test.cpp instead of including test.hpp (this one is very suspicious - this shouldn't make a difference at all, should it?) 2. removing the "enclosing" class in test.hpp and putting its contents in namespace scope instead 3. making the "enclosing" class in test.hpp not a template