On Tue, Jul 31, 2012 at 12:59:16PM +0200, David Kastrup wrote: > Graham Percival <gra...@percival-music.ca> writes: > > > On Mon, Jul 30, 2012 at 11:44:28PM +0100, Bernard Hurley wrote: > >> On Mon, Jul 30, 2012 at 10:14:37PM +0100, Phil Holmes wrote: > >> > ----- Original Message ----- From: <gra...@percival-music.ca> > >> >> lily/output-def.cc:38: Real long_name_len = 0.0; > >> >> could these be class member variables instead of global variables? > >> > > >> > I don't believe so. I'd be happy to be corrected by someone who > >> > understands this better than I do, but my understanding of c++ (which I > >> > guess at based on c#) says that, in order to access a class member > >> > variable, you need to have an instantiation of the class. > > > > That is true. > > > >> In C++ variables can be declared static. If this is done all instances of > >> the class share the same instance of the variable and it can exist > >> even if the class has no instances see: > > > > Yes, that's also true. > > > > Let me rephrase my concern: in C++-land, having a global variable > > (including static variables) are viewed upon like picking one's > > nose. > > That's total nonsense with regard to static member variables. There are > perfectly valid reasons to have variables per-class (which is what a > static member variable is) rather than per instance, for example for > class reflection (information about the class itself, like its name and > other stuff). C++ uses the equivalent of static members for its virtual > function tables. > > For information _flow_ bound to instances, one would not use global > variables. > > It sounds like this would be the case here. >
Moreover a static member variable can be declared private when it is only available to methods of the class. This deals with the usual objections to global variables. Bernard Hurley _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel