Ignore that the code doesn't fully compile because of not actually being used (so it can't find the template type).
The template seems to be confusing they check
warning: duplInheritedMember - The class 'DupExampleImplementation' defines member function with name 'GetValue' also defined in its parent class 'DupExampleInterface'
If you put override on the duplicate function, you get a compile error.
The base is pure virtual and therefore has to be implemented and since there is no compile error it apparently is.
So, I don't see a way to make this work without maybe adding specializations (which I don't want to do and seems odd if to fix this issue cppcheck would require it on compiling code).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ignore that the code doesn't fully compile because of not actually being used (so it can't find the template type).
The template seems to be confusing they check
warning: duplInheritedMember - The class 'DupExampleImplementation' defines member function with name 'GetValue' also defined in its parent class 'DupExampleInterface'
So the idea is that the template parameters prevent any confusion between the two functions? Otherwise this looks like a true positive to me.
If you put override on the duplicate function, you get a compile error.
The base is pure virtual and therefore has to be implemented and since there is no compile error it apparently is.
So, I don't see a way to make this work without maybe adding specializations (which I don't want to do and seems odd if to fix this issue cppcheck would require it on compiling code).