>>>>> "GAH" == George Heintzelman <gah@bnl.gov> writes:
>> > TVector3 and TLorentzVector have been left unchanged since
>> your mail > and the discussion following it. These two classes
>> were supposed to be in > phase with the same classes in
>> CLHEP. It is my understanding that the CLHEP > maintainers were
>> against your proposal (from some private emails!).
>> I think allowing more powerful and understandable code to be
>> written is far more important than saving a few bytes here and
>> there, but anyway.
GAH> However, when you build a library, this is completely
GAH> different. Since you're building it (hopefully) for general
GAH> use and re-use, you do not have any constraint on the
GAH> application people will eventually put it to, and so you
GAH> should make it as lean and mean as possible.
Yes, but I think the key here is reuse. Unless there is an extremely
good justification for *preventing* a class from being inherited, then
it seems library classes should be designed to encourage it. I gather
this is not a problem in ROOT since the vector classes derive from
TObject, but it's pretty short sighted in CLHEP. And, if a class can
be inherited then an application that needs special performance can
start by sub-classing the base class while the application is being
written and debugged. Later after it's debugged, through the magic of
C++ the class's inheritance can be changed to use the extremely
fast/small/whatever special purpose class.
Cheers,
Clark
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:35 MET