|
From: DU V. DE V. F. G. P. <fra...@ca...> - 2007-04-05 13:10:54
|
>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.=20 IMHO the actual improvement (if any) is that it reduces the number of = redundant inclusions. It should make no difference thanks to include = guards. However Lakos recommands in his book (Large-Scale C++ Software = Design) the use of redundant include guards to detect redundant = inclusion earlier. (It keeps the compiler from parsing header files to = look for include guards limits.) >> 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 Fran=E7ois |