| Summary: | [Templates] template members & virtual base class functions | ||
|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | Andrew Niefer <aniefer> |
| Component: | cdt-parser | Assignee: | Project Inbox <cdt-core-inbox> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | rolando.martins, yevshif, zeratul976 |
| Version: | 2.0 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows 2000 | ||
| Whiteboard: | |||
void foo () {
D *d;
d->f( 1 ); //calls B::f(int) not D::f<int>
}
Future means you commit to fix it in the Future. Inboxes can't make committments. Moving to '--'. Tested this with CDT master: - 'Open Declaration' on the call to f() in foo() takes you to D::f() - 'Find References' on D::f() brings up the call to f() in foo() - 'Find References' on B::f() brings up no results I think this report can be closed. |
Spec 14.5.2-4 A specialization of a member function template does not override a virtual function from a base class class B { virtual void f( int ); }; class D : public B{ template < class T > void f( T ); //does not override B::f(int) };