- **labels**: --> Fixed_2_21_0
- **status**: Started --> Fixed
- **Patch**: push -->
- **Comment**:
Pushed as
~~~
commit 26b9b8e42a93b3b9a34effcfb61840d22ef9b272
Author: Jonas Hahnfeld <[email protected]>
Date: Thu Nov 14 09:22:03 2019 +0100
Issue 5600: Fix hidden member templates in derived classes
According to Clang's interpretation of the C++ standard, "member
functions in the derived class override and/or hide member functions
with the same name and parameter types in a base class". This seems
to also hold for templated member functions and even if the code has
a using-declaration of the base class member.
This affects LilyPond's implementation of the method_finder template.
Luckily, the problem can be solved by just re-declaring the base
template specializations in each derived class instead of 'using' them.
The only drawback is that this doesn't work out-of-the-box for deeper
inheritance hierarchies. However, this only affects three ligature
engravers so I think it's worth the maintenance to just encode the
transitive inheritance manually.
~~~
---
** [issues:#5600] Fix hidden member templates in derived classes**
**Status:** Fixed
**Labels:** Fixed_2_21_0
**Created:** Thu Nov 14, 2019 08:34 AM UTC by Jonas Hahnfeld
**Last Updated:** Mon Nov 18, 2019 07:58 PM UTC
**Owner:** Jonas Hahnfeld
Fix hidden member templates in derived classes
According to Clang's interpretation of the C++ standard, "member
functions in the derived class override and/or hide member functions
with the same name and parameter types in a base class". This seems
to also hold for templated member functions and even if the code has
a using-declaration of the base class member.
This affects LilyPond's implementation of the method_finder template.
Luckily, the problem can be solved by just re-declaring the base
template specializations in each derived class instead of 'using' them.
The only drawback is that this doesn't work out-of-the-box for deeper
inheritance hierarchies. However, this only affects three ligature
engravers so I think it's worth the maintenance to just encode the
transitive inheritance manually.
http://codereview.appspot.com/559250043
---
Sent from sourceforge.net because [email protected] is
subscribed to https://sourceforge.net/p/testlilyissues/issues/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/testlilyissues/admin/issues/options. Or, if this is
a mailing list, you can unsubscribe from the mailing list._______________________________________________
Testlilyissues-auto mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/testlilyissues-auto