|
From: Luigi B. <lui...@gm...> - 2007-04-05 13:50:36
|
On Thu, 2007-04-05 at 15:10 +0200, DU VIGNAUD DE VILLEFORT FRANCOIS GASAPRD PHI wrote: > >Possibly. At the end of the day, the client code must instantiate all > >needed classes, so it's likely that it includes everything. > >However, the advantage is in compilation times for the library. On the > >one hand, the overall time can decrease as each source file might > >include less headers. On the other hand, and more importantly, > >incremental compilations are faster since changing a header file might > >cause less source files to be recompiled. > > Well, since all classes are compiled in the library, they also must > have access sooner or later to the actual definition of the classes > they are depends on. Non necessarily. Let's say we have: - a class Foo declared in foo.hpp and implemented in foo.cpp; - a class Bar that stores, say, a pointer to Foo. In bar.hpp, we only need a forward declaration of Foo. In bar.cpp (where the Foo object is manipulated) we need to include foo.hpp. - a class Baz which takes a pointer to Foo as argument, passes it to a Bar, and stores (and possibly manipulates) the resulting Bar. Since Baz is not going to use Foo directly, baz.cpp does not need to include its definition---the forward declaration in bar.hpp is enough---and can be compiled successfully without including foo.hpp. > >> Another one, what about refactoring the QL folders hierarchy since we > >> are using svn? > > >Sure. Any ideas? > > I would move some existing folders and files as follows > > math: > optimization > randomnumbers > solver1D > > time:(new) > calendars > daycounters > (schedule.*, BDC, weekday, ...) > > methods:(new) > finitedifferences > montecarlo > lattices > > termstructures: > Volatilities > > > I would also create the following subfolders: > math: > integrals > distributions > interpolations > > instruments: > swaps > bonds > options > > termstructures: > yieldCurve > volatilities yieldcurves, you mean. Plural and lowercase. About instruments, I'm not so sure. But all the others seem ok to me. Any other votes, anybody? Later, Luigi ---------------------------------------- The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise. -- W.E. Dijkstra |