-
-
Notifications
You must be signed in to change notification settings - Fork 202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handling of template members #179
Comments
Great catch! I don't have any strong ideas on this one. I guess the template parameters are unnecessary from an identification stand point. You can't have two difference classes with the same name and different template parameters to tell them apart so dropping it seems to be a simplifying step with any downsides. I agree with you! |
OK, I'll try implementing removal of template parameters then. |
Otherwise links to nested classes (in parameter or return types) defined in the same template are not generated correctly, because the latter don't include template arguments. Fixes #179.
Otherwise links to nested classes (in parameter or return types) defined in the same template are not generated correctly, because the latter don't include template arguments. Fixes #179.
Reopening as the same should be done for data members as well. |
Fixed in c9d73f6 for all members. |
Otherwise links to nested classes (in parameter or return types) defined in the same template are not generated correctly, because the latter don't include template arguments. Fixes #179.
Currently there is an inconsistency in handling class and non-class members of class templates. Consider the following example:
Inner class is passed as
class C::D
to the domain directive while function is passed asvoid C<T>::f()
. Note thatC
has template arguments in the case of member function, but not in the case of the class.While it doesn't change rendering, it affects how the domain targets are generated and, in particular, it means that in some cases cross references are not generated as in the following example:
Therefore, we should either strip template arguments in the case of functions (making
void C::f()
in the above example) or add them in the case of classes (makingclass C<T>::D
). I tend to prefer the first option because technically a template argument is just placeholder and not part of a signature until you instantiate a template.@michaeljones do you have any ideas or comments about this?
The text was updated successfully, but these errors were encountered: