From: David Kastrup Date: Sat, 28 Apr 2012 13:23:08 +0000 (+0200) Subject: Don't use virtual base classes without apparent reason X-Git-Tag: release/2.15.39-1~57 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=77cd92ff6a0547403b3a524b5c4ec95a8d1cbdd9;p=lilypond.git Don't use virtual base classes without apparent reason Virtual base classes are a tool for joining the representations of common ancestors in a class lattice. They come at a cost in computational, conceptual, and usability complexity. I can't see the purpose for the instances of virtual inheritance in LilyPond (without multiple inheritance, there can't be much of an effect). --- diff --git a/lily/include/engraver-group.hh b/lily/include/engraver-group.hh index 52d931b523..5738b8a9f2 100644 --- a/lily/include/engraver-group.hh +++ b/lily/include/engraver-group.hh @@ -23,7 +23,7 @@ #include "engraver.hh" #include "translator-group.hh" -class Engraver_group : public virtual Translator_group +class Engraver_group : public Translator_group { protected: vector announce_infos_; diff --git a/lily/include/global-context.hh b/lily/include/global-context.hh index b499185911..079162d272 100644 --- a/lily/include/global-context.hh +++ b/lily/include/global-context.hh @@ -23,7 +23,7 @@ #include "context.hh" #include "pqueue.hh" -class Global_context : public virtual Context +class Global_context : public Context { PQueue extra_mom_pq_; Output_def *output_def_; diff --git a/lily/include/performer-group.hh b/lily/include/performer-group.hh index c2ee2ca159..4316d8bb73 100644 --- a/lily/include/performer-group.hh +++ b/lily/include/performer-group.hh @@ -26,7 +26,7 @@ typedef void (Performer:: *Performer_method) (void); -class Performer_group : public virtual Translator_group +class Performer_group : public Translator_group { public: VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Performer_group);