
on Fri Oct 23 2009, "troy d. straszheim" <troy-AT-resophonic.com> wrote:
File D.hpp is either standalone (if no directory D exists) or includes all files in subdirectory D. This way your abstraction gets you more than just information on how to negotiate the toplevel boost/ directories, and it matches current practice fairly well. Fusion has always struck me as quite clean:
% ls boost/fusion adapted/ container.hpp iterator.hpp support/ view.hpp adapted.hpp functional/ mpl/ support.hpp algorithm/ functional.hpp mpl.hpp tuple/ algorithm.hpp include/ sequence/ tuple.hpp container/ iterator/ sequence.hpp view/
the files D.hpp could be automatically generated and/or checked. There are implications for 'modularization'... note that this supports single-header projects as well as projects with subdirectories.
Fusion is very clean, but I have a problem remembering where to find various files. For that reason, I prefer the MPL's organization, where component xxx can always be used after #include <boost/mpl/xxx.hpp>. There is lower-level modularization, but for the most part the public interfaces are in boost/mpl and subdirectories are reserved for implementation details. -- Dave Abrahams Meet me at BoostCon: http://www.boostcon.com BoostPro Computing http://www.boostpro.com