Comment #1 on issue 2088 by russell....@gmail.com: pointer confusion with
clang++
http://code.google.com/p/lilypond/issues/detail?id=2088
The existing code uses a G++ extension (described in GCC manual 7.6), which
allows this conversion of member function pointer to straight function
pointer. If you remove the -Wno-pmf-conversions from makefile in lily
directory, you will see warnings from g++ at the same places clang++ shows
errors.
These warnings/errors can be eliminated by changing the two typedefs at the
end of lily-proto.hh to:
typedef void (Engraver::* Engraver_void_function_engraver_grob_info)
(Grob_info);
typedef void (Translator::* Translator_void_method_ptr) ();
but this creates trouble when the pointers are used, for example in
Translator_method_binding::invoke(). I have to head to work now, but I
will look more closely at it over the weekend and see if I can suggest a
fix. The extension is presumably used as an optimization, so obviously it
would be best if the solution does not create performance problems.
_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond